Local Open Scope logic_base.
Local Open Scope syntax.
Local Open Scope kripke_model.
Section Canonical.
Context {L: Language}
{minL: MinimunLanguage L}
{pL: PropositionalLanguage L}
{Gamma: ProofTheory L}
{bSC: BasicSequentCalculus L Gamma}
{minSC: MinimunSequentCalculus L Gamma}
{ipSC: IntuitionisticPropositionalSequentCalculus L Gamma}
{MD: Model}
{kMD: KripkeModel MD}
{M: Kmodel}
{R: Relation (Kworlds M)}
{SM: Semantics L MD}
{kminSM: KripkeMinimunSemantics L MD M SM}
{kpSM: KripkePropositionalSemantics 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)).

(* Specifications: *)
Lemma classical_canonical_ident
{cpSC: ClassicalPropositionalSequentCalculus L Gamma}
(AL_DC: at_least derivable_closed cP)
(AL_OW: at_least orp_witnessed cP)
(AL_CONSI: at_least consistent cP):
IdentityKripkeIntuitionisticModel (Kworlds M).
Lemma GodelDummett_canonical_no_branch
{SC: NormalSequentCalculus L Gamma}
{minAX: MinimunAxiomatization L Gamma}
{ipGamma: IntuitionisticPropositionalLogic L Gamma}
{gdpGamma: GodelDummettPropositionalLogic L Gamma}
(AL_DC: at_least derivable_closed cP)
(AL_OW: at_least orp_witnessed cP):
NoBranchKripkeIntuitionisticModel (Kworlds M).
Lemma DeMorgan_canonical_branch_join
{SC: NormalSequentCalculus L Gamma}
{AX: NormalAxiomatization L Gamma}
{minAX: MinimunAxiomatization L Gamma}
{ipGamma: IntuitionisticPropositionalLogic L Gamma}
{dmpGamma: DeMorganPropositionalLogic L Gamma}
(AL_DC: at_least derivable_closed cP)
(AL_OW: at_least orp_witnessed cP)
(AL_CONSI: at_least consistent cP)
(LIN_CD: forall x, Lindenbaum_constructable (cannot_derive x) cP):
BranchJoinKripkeIntuitionisticModel (Kworlds M).