fact: Definition hoare_bind {Σ α β} (h : hoare Σ α) (k : α -> hoare Σ β) : hoare Σ β := mk_hoare (fun s => pre h s /\ (forall x s', post h s x s' -> pre (k x) s')) (fun s x s'' => exists y s', post h s y s' /\ post (k y) s' x s'').
imports: ExtLib(Functor Applicative Monad) FreeSpec.Core(Interface Impure Contract)