Require Logic.MinimunLogic.DeepEmbedded.MinimunLanguage.
Require Logic.MinimunLogic.DeepEmbedded.MinimunLogic.
Require Logic.MinimunLogic.DeepEmbedded.KripkeSemantics.
Local Open Scope logic_base.
Local Open Scope syntax.
Local Open Scope kripke_model.
Local Open Scope kripke_model_class.
Section Complete.
Context (Var: Type) (CV: Countable Var).
Instance L: Language := MinimunLanguage.L Var.
Instance minL: MinimunLanguage L := MinimunLanguage.minL Var.
Instance G: ProofTheory L := MinimunLogic.G Var.
Instance AX: NormalAxiomatization L G := MinimunLogic.AX Var.
Instance minAX: MinimunAxiomatization L G := MinimunLogic.minAX Var.
Instance SC: NormalSequentCalculus L G := MinimunLogic.SC Var.
Instance bSC: BasicSequentCalculus L G := MinimunLogic.bSC Var.
Instance fwSC: FiniteWitnessedSequentCalculus L G := MinimunLogic.fwSC Var.
Instance minSC: MinimunSequentCalculus L G := MinimunLogic.minSC Var.
Instance Kripke_MD: Model := KripkeSemantics.MD Var.
Instance Kripke_kMD: KripkeModel Kripke_MD := KripkeSemantics.kMD Var.
Instance Kripke_R (M: Kmodel): Relation (Kworlds M) := KripkeSemantics.R Var M.
Instance Kripke_SM: Semantics L Kripke_MD := KripkeSemantics.SM Var.
Instance Kripke_kminSM (M: Kmodel): KripkeMinimunSemantics L Kripke_MD M Kripke_SM := KripkeSemantics.kminSM Var M.
Definition cP: context -> Prop := derivable_closed.

(* Specifications: *)
Lemma AL_DC: at_least derivable_closed cP.
Definition canonical_frame: KripkeSemantics.frame :=
KripkeSemantics.Build_frame (sig cP) (fun a b => Included _ (proj1_sig a) (proj1_sig b)).