Definition orp_witnessed: context -> Prop :=
  fun Phi => forall x y, Phi (orp x y) -> Phi x \/ Phi y.Definition context_orp_captured (P: context -> Prop): Prop :=
  forall Phi Psi, P (context_orp Phi Psi) -> P Phi \/ P Psi.

(* Specifications: *)
Lemma context_orp_mono: forall Phi Psi Phi' Psi', Included _ (derivable Phi) (derivable Phi') -> Included _ (derivable Psi) (derivable Psi') -> Included _ (context_orp Phi Psi) (context_orp Phi' Psi').
Lemma context_orp_mono': forall Phi Psi Phi' Psi', Included _ Phi Phi' -> Included _ Psi Psi' -> Included _ (context_orp Phi Psi) (context_orp Phi' Psi').
Lemma cannot_derive_context_orp_captured: forall (x: expr), context_orp_captured (cannot_derive x).
Lemma DCS_truep: forall (Phi: context), derivable_closed Phi -> Phi TT.
Lemma DCS_andp_iff: forall (Phi: context), derivable_closed Phi -> (forall x y: expr, Phi (x && y) <-> (Phi x /\ Phi y)).
Lemma DCS_multi_and_iff: forall (Phi: context), derivable_closed Phi -> (forall xs: list expr, Phi (multi_and xs) <-> Forall Phi xs).
Lemma DCS_orp_iff: forall (Phi: context), derivable_closed Phi -> orp_witnessed Phi -> (forall x y: expr, Phi (x || y) <-> (Phi x \/ Phi y)).