Section BasePrograms.
Variables (A : Type) (P : Pred heap).
(* poset structure on ST *)
Definition st_leq e1 e2 := model e1 <== model e2.
Definition st_bot' := bot : [poset of prog A s.1].
Definition st_sup u :=
STprog (@st_sup_coherent u) (@st_sup_dstrict u) (@st_sup_has_spec u).

Lemma def_runs i y m (e : ST) :
(i, y, m) \In runs_of (model e) -> [/\ def i, i \In s.1 & def m].