Canonical Structure exn_eqMixin := EqMixin eqexnP.Canonical Structure exn_eqType := EqType exn exn_eqMixin.(* Answer type *)
Inductive ans (A : Type) : Type := Val of A | Exn of exn.(* Answer type *)
Inductive ans (A : Type) : Type := Val of A | Exn of exn.(* Answer type *)
Inductive ans (A : Type) : Type := Val of A | Exn of exn.Notation pre := (Pred heap).Notation post A := (ans A -> heap -> heap -> Prop).Definition spec B := pre * post B : Type.Notation ideald P := (ideal (defed P)).(* we carve out the model out of the following base type *)
Definition prog := ideald P -> ans A -> Pred heap.

Lemma st_trans e1 e2 e3 : st_leq e1 e2 -> st_leq e2 e3 -> st_leq e1 e3.