Section ContextProperties.
Context {L: Language}
{minL: MinimumLanguage L}
{sepconL: SepconLanguage L}
{GammaP: Provable L}
{GammaD: Derivable L}.
Definition context_sepcon (Phi Psi: context): context :=
fun z => exists x y, z = x * y /\ Phi |-- x /\ Psi |-- y.
Definition context_sepcon_included_l (Phi2 Psi: context): context -> Prop :=
fun Phi1 => Included _ (context_sepcon Phi1 Phi2) Psi.
Definition context_sepcon_included_r (Phi1 Psi: context): context -> Prop :=
fun Phi2 => Included _ (context_sepcon Phi1 Phi2) Psi.
Context {pL: PropositionalLanguage L}
{wandL: WandLanguage L}
{SC: NormalSequentCalculus L GammaP GammaD}
{bSC: BasicSequentCalculus L GammaD}
{fwSC: FiniteWitnessedSequentCalculus L GammaD}
{minSC: MinimumSequentCalculus L GammaD}
{ipSC: IntuitionisticPropositionalSequentCalculus L GammaD}
{AX: NormalAxiomatization L GammaP GammaD}
{minAX: MinimumAxiomatization L GammaP}
{ipAX: IntuitionisticPropositionalLogic L GammaP}
{sepconAX: SepconAxiomatization L GammaP}
{wandAX: WandAxiomatization L GammaP}
{sepcon_orp_AX: SepconOrAxiomatization L GammaP}
{sepcon_falsep_AX: SepconFalseAxiomatization L GammaP}.

Lemma context_sepcon_derivable:
forall (Phi Psi: context) z,
context_sepcon Phi Psi |-- z ->
exists x y, |-- x * y --> z /\ Phi |-- x /\ Psi |-- y.