Local Open Scope logic_base.
Local Open Scope syntax.
Local Open Scope kripke_model.
Section Sound_Kripke.
Context {L: Language}
{minL: MinimunLanguage L}
{pL: PropositionalLanguage L}
{MD: Model}
{kMD: KripkeModel MD}
{M: Kmodel}
{R: Relation (Kworlds M)}
{po_R: PreOrder Krelation}
{SM: Semantics L MD}
{kiSM: KripkeIntuitionisticSemantics L MD M SM}
{kminSM: KripkeMinimunSemantics L MD M SM}
{kpSM: KripkePropositionalSemantics L MD M SM}.

(* Specifications: *)
Lemma sound_andp_intros:
forall x y: expr,
forall m,
KRIPKE: M, m |= x --> y --> x && y.
Lemma sound_andp_elim1:
forall x y: expr,
forall m,
KRIPKE: M, m |= x && y --> x.
Lemma sound_andp_elim2:
forall x y: expr,
forall m,
KRIPKE: M, m |= x && y --> y.
Lemma sound_orp_intros1:
forall x y: expr,
forall m,
KRIPKE: M, m |= x --> x || y.
Lemma sound_orp_intros2:
forall x y: expr,
forall m,
KRIPKE: M, m |= y --> x || y.
Lemma sound_orp_elim:
forall x y z: expr,
forall m,
KRIPKE: M, m |= (x --> z) --> (y --> z) --> (x || y --> z).
Lemma sound_falsep_elim:
forall x: expr,
forall m,
KRIPKE: M, m |= FF --> x.
Lemma sound_excluded_middle_ident {ikiM: IdentityKripkeIntuitionisticModel (Kworlds M)}:
forall x: expr,
forall m, KRIPKE: M, m |= x || ~~ x.
Lemma sound_impp_choice_no_branch {nkiM: NoBranchKripkeIntuitionisticModel (Kworlds M)}:
forall x y: expr,
forall m, KRIPKE: M, m |= (x --> y) || (y --> x).
Lemma sound_weak_excluded_middle_branch_join {bkiM: BranchJoinKripkeIntuitionisticModel (Kworlds M)}:
forall x: expr,
forall m, KRIPKE: M, m |= ~~ x || ~~ ~~ x.