Modal logic S5
Content created by Viktor Yudov.
Created on 2024-05-05.
Last modified on 2024-05-08.
module modal-logic.modal-logic-s5 where
Imports
open import foundation.decidable-types open import foundation.dependent-pair-types open import foundation.empty-types open import foundation.intersections-subtypes open import foundation.propositional-truncations open import foundation.raising-universe-levels open import foundation.sets open import foundation.subtypes open import foundation.unions-subtypes open import foundation.unit-type open import foundation.universe-levels open import foundation-core.coproduct-types open import modal-logic.axioms open import modal-logic.deduction open import modal-logic.formulas open import modal-logic.kripke-semantics open import modal-logic.modal-logic-k open import modal-logic.soundness open import univalent-combinatorics.finite-types
Idea
TODO
Definition
module _ {l : Level} (i : Set l) where modal-logic-S5-axioms : modal-theory l i modal-logic-S5-axioms = modal-logic-K-axioms i ∪ ax-m i ∪ ax-b i ∪ ax-4 i modal-logic-S5 : modal-theory l i modal-logic-S5 = modal-logic-closure modal-logic-S5-axioms is-modal-logic-S5 : is-modal-logic modal-logic-S5 is-modal-logic-S5 = is-modal-logic-modal-logic-closure modal-logic-S5-axioms is-normal-modal-logic-S5 : is-normal-modal-logic modal-logic-S5 is-normal-modal-logic-S5 = modal-logic-monotic ( subtype-union-left ( modal-logic-K-axioms i) ( ax-m i ∪ (ax-b i ∪ ax-4 i))) modal-logic-S5-axioms-contains-ax-m : ax-m i ⊆ modal-logic-S5-axioms modal-logic-S5-axioms-contains-ax-m = transitive-leq-subtype ( ax-m i) ( ax-m i ∪ (ax-b i ∪ ax-4 i)) ( modal-logic-K-axioms i ∪ (ax-m i ∪ (ax-b i ∪ ax-4 i))) ( subtype-union-right ( modal-logic-K-axioms i) ( ax-m i ∪ (ax-b i ∪ ax-4 i))) ( subtype-union-left ( ax-m i) ( ax-b i ∪ ax-4 i)) modal-logic-S5-axioms-contains-ax-b : ax-b i ⊆ modal-logic-S5-axioms modal-logic-S5-axioms-contains-ax-b = transitive-leq-subtype ( ax-b i) ( ax-m i ∪ (ax-b i ∪ ax-4 i)) ( modal-logic-K-axioms i ∪ (ax-m i ∪ (ax-b i ∪ ax-4 i))) ( subtype-union-right ( modal-logic-K-axioms i) ( ax-m i ∪ (ax-b i ∪ ax-4 i))) ( transitive-leq-subtype ( ax-b i) ( ax-b i ∪ ax-4 i) ( ax-m i ∪ (ax-b i ∪ ax-4 i)) ( subtype-union-right (ax-m i) (ax-b i ∪ ax-4 i)) ( subtype-union-left (ax-b i) (ax-4 i))) modal-logic-S5-axioms-contains-ax-4 : ax-4 i ⊆ modal-logic-S5-axioms modal-logic-S5-axioms-contains-ax-4 = transitive-leq-subtype ( ax-4 i) ( ax-m i ∪ (ax-b i ∪ ax-4 i)) ( modal-logic-K-axioms i ∪ (ax-m i ∪ (ax-b i ∪ ax-4 i))) ( subtype-union-right ( modal-logic-K-axioms i) ( ax-m i ∪ (ax-b i ∪ ax-4 i))) ( transitive-leq-subtype ( ax-4 i) ( ax-b i ∪ ax-4 i) ( ax-m i ∪ (ax-b i ∪ ax-4 i)) ( subtype-union-right (ax-m i) (ax-b i ∪ ax-4 i)) ( subtype-union-right (ax-b i) (ax-4 i))) modal-logic-S5-contains-ax-m : ax-m i ⊆ modal-logic-S5 modal-logic-S5-contains-ax-m = transitive-leq-subtype ( ax-m i) ( modal-logic-S5-axioms) ( modal-logic-S5) ( axioms-subset-modal-logic modal-logic-S5-axioms) ( modal-logic-S5-axioms-contains-ax-m) modal-logic-S5-contains-ax-b : ax-b i ⊆ modal-logic-S5 modal-logic-S5-contains-ax-b = transitive-leq-subtype ( ax-b i) ( modal-logic-S5-axioms) ( modal-logic-S5) ( axioms-subset-modal-logic modal-logic-S5-axioms) ( modal-logic-S5-axioms-contains-ax-b) modal-logic-S5-contains-ax-4 : ax-4 i ⊆ modal-logic-S5 modal-logic-S5-contains-ax-4 = transitive-leq-subtype ( ax-4 i) ( modal-logic-S5-axioms) ( modal-logic-S5) ( axioms-subset-modal-logic modal-logic-S5-axioms) ( modal-logic-S5-axioms-contains-ax-4) module _ {l1 l2 l3 l4 : Level} (i : Set l1) where soundness-S5-additional-axioms : soundness ( ax-m i ∪ ax-b i ∪ ax-4 i) (equivalence-kripke-models l2 l3 i l4) soundness-S5-additional-axioms = soundness-union ( ax-m i) ( ax-b i ∪ ax-4 i) ( reflexive-kripke-models l2 l3 i l4) ( symmetry-kripke-models l2 l3 i l4 ∩ transitive-kripke-models l2 l3 i l4) ( ax-m-soundness i l3 l4) ( soundness-union ( ax-b i) ( ax-4 i) ( symmetry-kripke-models l2 l3 i l4) ( transitive-kripke-models l2 l3 i l4) ( ax-b-soundness i l3 l4) ( ax-4-soundness i l3 l4)) soundness-S5-axioms : soundness ( modal-logic-S5-axioms i) ( decidable-subclass i (equivalence-kripke-models l2 l3 i l4)) soundness-S5-axioms = soundness-union ( modal-logic-K-axioms i) ( ax-m i ∪ (ax-b i ∪ ax-4 i)) ( decidable-kripke-models l2 l3 i l4) ( equivalence-kripke-models l2 l3 i l4) ( soundness-K-axioms i) ( soundness-S5-additional-axioms) soundness-S5 : soundness ( modal-logic-S5 i) ( decidable-subclass i (equivalence-kripke-models l2 l3 i l4)) soundness-S5 = soundness-modal-logic ( decidable-subclass i (equivalence-kripke-models l2 l3 i l4)) ( soundness-S5-axioms) soundness-S5-finite : soundness ( modal-logic-S5 i) ( finite-subclass i (equivalence-kripke-models l2 l3 i l4)) soundness-S5-finite = soundness-subclass ( modal-logic-S5 i) ( decidable-subclass i (equivalence-kripke-models l2 l3 i l4)) ( finite-subclass i (equivalence-kripke-models l2 l3 i l4)) ( subtype-both-intersection ( decidable-kripke-models l2 l3 i l4) ( equivalence-kripke-models l2 l3 i l4) ( finite-subclass i (equivalence-kripke-models l2 l3 i l4)) ( transitive-leq-subtype ( finite-subclass i (equivalence-kripke-models l2 l3 i l4)) ( finite-decidable-kripke-models l2 l3 i l4) ( decidable-kripke-models l2 l3 i l4) ( finite-decidable-subclass-decidable-models i) ( subtype-intersection-left ( finite-decidable-kripke-models l2 l3 i l4) ( equivalence-kripke-models l2 l3 i l4))) ( subtype-intersection-right ( finite-decidable-kripke-models l2 l3 i l4) ( equivalence-kripke-models l2 l3 i l4))) ( soundness-S5) module _ {l1 : Level} (i : Set l1) where is-consistent-S5 : is-consistent-modal-logic (modal-logic-S5 i) is-consistent-S5 bot-in-logic = map-inv-raise ( soundness-S5-finite ( i) ( ⊥ₘ) ( bot-in-logic) ( triple ( unit , unit-trunc-Prop star) ( λ _ _ → unit-Prop) ( λ _ _ → unit-Prop)) ( pair ( triple ( is-finite-unit) ( λ _ _ → inl star) ( λ _ _ → is-decidable-unit)) ( triple ( λ x → star) ( λ x y _ → star) ( λ x y z _ _ → star))) ( star))
Recent changes
- 2024-05-08. Viktor Yudov. Refactor kripke semantics.
- 2024-05-06. Viktor Yudov. Add recurser for equivalence classes and refactor.
- 2024-05-05. Viktor Yudov. Refactor formulas and module names.
- 2024-05-05. Viktor Yudov. Refactor subtypes.
- 2024-05-05. Viktor Yudov. Refactor after rebase.