...
- A write to a variable does not depend on its current value
- A write to a variable does not depend on the result of non-atomic operations that involve reads and writes of other variables
- Locking is not required for any other reason (all actions are atomic)
...