Require Logic.PropositionalLogic.Semantics.Trivial.
Require Logic.ModalLogic.Semantics.Kripke.
Require Logic.GeneralLogic.Semantics.Kripke.
Require Logic.MinimunLogic.Semantics.Kripke.
Require Logic.PropositionalLogic.Semantics.Kripke.
Require Logic.ModalLogic.Semantics.Flat.
Require Logic.SeparationLogic.Semantics.FlatSemantics.
Local Open Scope logic_base.
Local Open Scope syntax.
Local Open Scope kripke_model.
Module Sound_Trivial.

(* Specifications: *)
Lemma sound_impp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tminSM: TrivialMinimunSemantics L MD SM} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}:
forall x y: expr,
semantic_stable x -> semantic_stable y -> semantic_stable (x --> y).
Lemma sound_andp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}:
forall x y: expr,
semantic_stable x -> semantic_stable y -> semantic_stable (x && y).
Lemma sound_orp_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}:
forall x y: expr,
semantic_stable x -> semantic_stable y -> semantic_stable (x || y).
Lemma sound_falsep_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}:
semantic_stable falsep.
Lemma sound_stable_proper_iffp {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R: SS.Relation (Kworlds M)} {SM: Semantics L MD} {tminSM: TrivialMinimunSemantics L MD SM} {tpSM: TrivialPropositionalSemantics L MD SM} {stableSM: SemanticStable L MD M SM}:
forall x y,
(forall m, KRIPKE: M, m |= x <--> y) ->
(semantic_stable x <-> semantic_stable y).
Lemma sound_boxp_stable {L: Language} {minL: MinimunLanguage L} {mL: ModalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KM.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {R1_bis: Bisimulation SS.Krelation KM.Krelation} {SM: Semantics L MD} {kmSM: KripkeModalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}:
forall x: expr,
semantic_stable x -> semantic_stable (boxp x).
Lemma sound_boxp_absorb_stable {L: Language} {minL: MinimunLanguage L} {pL: PropositionalLanguage L} {mL: ModalLanguage L} {MD: Model} {kMD: KripkeModel MD} {M: Kmodel} {R1: KM.Relation (Kworlds M)} {R2: SS.Relation (Kworlds M)} {R1_incl: Inclusion KM.Krelation SS.Krelation} {SM: Semantics L MD} {tminSM: TrivialMinimunSemantics L MD SM} {tpSM: TrivialPropositionalSemantics L MD SM} {kmSM: KripkeModalSemantics L MD M SM} {stableSM: SemanticStable L MD M SM}:
forall x: expr,
semantic_stable x ->
(forall (m: Kworlds M), KRIPKE: M, m |= x --> boxp x).