Section ContextProperties.
Context {L: Language}
{minL: MinimumLanguage L}
{pL: PropositionalLanguage L}.
Definition orp_witnessed: context -> Prop :=
fun Phi => forall x y, Phi (orp x y) -> Phi x \/ Phi y.
Context {GammaP: Provable L} {GammaD: Derivable L}.
Definition context_orp (Phi Psi: context): context :=
fun z => exists x y, z = x || y /\ Phi |-- x /\ Psi |-- y.
Definition context_orp_captured (P: context -> Prop): Prop :=
forall Phi Psi, P (context_orp Phi Psi) -> P Phi \/ P Psi.
Context {SC: NormalSequentCalculus L GammaP GammaD}
{bSC: BasicSequentCalculus L GammaD}
{minSC: MinimumSequentCalculus L GammaD}
{ipSC: IntuitionisticPropositionalSequentCalculus L GammaD}
{minAX: MinimumAxiomatization L GammaP}
{ipAX: IntuitionisticPropositionalLogic L GammaP}.

Lemma derivable_closed_union_derivable {AX: NormalAxiomatization L GammaP GammaD}: forall (Phi Psi: context) (x: expr),
derivable_closed Psi ->
Union _ Phi Psi |-- x ->
exists y, Psi y /\ Phi |-- y --> x.