fact: Definition gen_callee_obligation `{MayProvide ix i} {Ω α} (c : contract i Ω) (ω : Ω) (e : ix α) (x : α) : Prop := match proj_p e with | Some e => callee_obligation c ω e x | None => True end.
imports: Coq(Setoid Morphisms) ExtLib(StateMonad MonadState MonadTrans) FreeSpec.Core(Interface Impure Semantics Component)