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 bind_has_spec : bind_sp \In has_spec bind_s.