An operational and axiomatic semantics for non-determinism and sequence points in C.