proposition: Lemma exec_test_inversion: forall A (x:E.Var A) expr e e', (exec e (Iset x expr) e') -> e'=(E.upd x (E.eval expr e) e).
proof: Proof. intros A x expr e e' H. pattern e'; apply (exec_inversion H); simpl; auto. Qed.
imports: hoarelogicsemantics