(*
 Lemma agree_except_sym:
  forall x s s', agree_except x s s' -> agree_except x s' s.
 Proof.
 unfold agree_except; intuition. symmetry. apply H0; auto.
 Qed.
*)

Axiom env_reset2: forall s x z, env_set x (env_get s x) (env_set x z s) = s.

Lemma if_bool_e: forall {A: Type} (b: bool) (c d e: A), (if b then c else d) = e -> b=true /\ c=e \/ b=false /\ d=e.