Section Canonical.
Context {L: Language}
{minL: MinimumLanguage L}
{pL: PropositionalLanguage L}
{sepconL: SepconLanguage L}
{wandL: WandLanguage L}
{GammaP: Provable L}
{GammaD: Derivable L}
{SC: NormalSequentCalculus L GammaP GammaD}
{bSC: BasicSequentCalculus 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}
{MD: Model}
{kMD: KripkeModel MD}
{M: Kmodel}
{R: Relation (Kworlds M)}
{J: Join (Kworlds M)}
{SM: Semantics L MD}
{fsepconSM: SepconSemantics L MD M SM}
{fwandSM: WandSemantics L MD M SM}.
Context (cP: context -> Prop)
(rel: bijection (Kworlds M) (sig cP)).
Hypothesis H_R: forall m n Phi Psi, rel m Phi -> rel n Psi -> (m <= n <-> Included _ (proj1_sig Phi) (proj1_sig Psi)).
Hypothesis H_J: forall m1 m2 m Phi1 Phi2 Phi, rel m1 Phi1 -> rel m2 Phi2 -> rel m Phi -> (join m1 m2 m <-> Included _ (context_sepcon (proj1_sig Phi1) (proj1_sig Phi2)) (proj1_sig Phi)).
Instance SA
(AL_DC: at_least derivable_closed cP)
(LIN_SR: forall (Phi: context) (Psi: sig cP), Lindenbaum_constructable (context_sepcon_included_r Phi (proj1_sig Psi)) cP):
SeparationAlgebra (Kworlds M).
Instance uSA
(AL_DC: at_least derivable_closed cP):
UpwardsClosedSeparationAlgebra (Kworlds M).
Instance dSA
(AL_DC: at_least derivable_closed cP):
DownwardsClosedSeparationAlgebra (Kworlds M).
Context {empL: EmpLanguage L}
{empAX: EmpAxiomatization L GammaP}
{fempSM: EmpSemantics L MD M SM}.
Instance unitSA
(AL_DC: at_least derivable_closed cP)
(LIN_SR: forall (Phi: context) (Psi: sig cP), Lindenbaum_constructable (context_sepcon_included_r Phi (proj1_sig Psi)) cP)
(TRUTH: forall x, forall m Phi, rel m Phi -> (KRIPKE: M, m |= x <-> proj1_sig Phi x)):
UnitalSeparationAlgebra (Kworlds M).

Lemma dup_canonical_incr_join
{desAX: DupEmpSeparationLogic L GammaP}
(AL_DC: at_least derivable_closed cP)
(TRUTH: forall x, forall m Phi, rel m Phi -> (KRIPKE: M, m |= x <-> proj1_sig Phi x)):
IncreasingJoinSelfSeparationAlgebra (Kworlds M).