Formulas deduction
Content created by Viktor Yudov.
Created on 2024-03-29.
Last modified on 2024-05-05.
module modal-logic.formulas-deduction where
Imports
open import foundation.dependent-pair-types open import foundation.logical-equivalences open import foundation.sets open import foundation.subtypes open import foundation.unions-subtypes open import foundation.universe-levels open import foundation-core.identity-types open import modal-logic.axioms open import modal-logic.deduction open import modal-logic.formulas open import modal-logic.modal-logic-k open import modal-logic.weak-deduction
Idea
TODO
Definition
module _ {l1 l2 : Level} (i : Set l1) (axioms : modal-theory l2 i) (is-normal : is-normal-modal-logic axioms) where private contains-ax-k : ax-k i ⊆ axioms contains-ax-k = transitive-leq-subtype ( ax-k i) ( modal-logic-K i) ( axioms) ( is-normal) ( K-contains-ax-k i) contains-ax-s : ax-s i ⊆ axioms contains-ax-s = transitive-leq-subtype ( ax-s i) ( modal-logic-K i) ( axioms) ( is-normal) ( K-contains-ax-s i) contains-ax-n : ax-n i ⊆ axioms contains-ax-n = transitive-leq-subtype ( ax-n i) ( modal-logic-K i) ( axioms) ( is-normal) ( K-contains-ax-n i) contains-ax-dn : ax-dn i ⊆ axioms contains-ax-dn = transitive-leq-subtype ( ax-dn i) ( modal-logic-K i) ( axioms) ( is-normal) ( K-contains-ax-dn i) weak-modal-logic-const : (a : modal-formula i) {b : modal-formula i} → is-in-subtype (weak-modal-logic-closure axioms) b → is-in-subtype (weak-modal-logic-closure axioms) (a →ₘ b) weak-modal-logic-const a {b} b-in-logic = weak-modal-logic-closure-mp ( weak-modal-logic-closure-ax ( contains-ax-k (b →ₘ a →ₘ b) (b , a , refl))) ( b-in-logic) modal-logic-const : (a : modal-formula i) {b : modal-formula i} → is-in-subtype (modal-logic-closure axioms) b → is-in-subtype (modal-logic-closure axioms) (a →ₘ b) modal-logic-const a {b} b-in-logic = modal-logic-closure-mp ( modal-logic-closure-ax ( contains-ax-k (b →ₘ a →ₘ b) (b , a , refl))) ( b-in-logic) weak-modal-logic-transitivity : {a b c : modal-formula i} → is-in-subtype (weak-modal-logic-closure axioms) (b →ₘ c) → is-in-subtype (weak-modal-logic-closure axioms) (a →ₘ b) → is-in-subtype (weak-modal-logic-closure axioms) (a →ₘ c) weak-modal-logic-transitivity {a} {b} {c} bc ab = weak-modal-logic-closure-mp ( weak-modal-logic-closure-mp ( weak-modal-logic-closure-ax ( contains-ax-s _ (a , b , c , refl))) ( weak-modal-logic-const a bc)) ( ab) modal-logic-transitivity : {a b c : modal-formula i} → is-in-subtype (modal-logic-closure axioms) (b →ₘ c) → is-in-subtype (modal-logic-closure axioms) (a →ₘ b) → is-in-subtype (modal-logic-closure axioms) (a →ₘ c) modal-logic-transitivity {a} {b} {c} bc ab = modal-logic-closure-mp ( modal-logic-closure-mp ( modal-logic-closure-ax ( contains-ax-s _ (a , b , c , refl))) ( modal-logic-const a bc)) ( ab) modal-logic-implication-box' : {a b : modal-formula i} → is-in-subtype (modal-logic-closure axioms) (a →ₘ b) → is-in-subtype (modal-logic-closure axioms) (□ₘ a →ₘ □ₘ b) modal-logic-implication-box' {a} {b} ab = modal-logic-closure-mp ( modal-logic-closure-ax ( contains-ax-n (□ₘ (a →ₘ b) →ₘ □ₘ a →ₘ □ₘ b) (a , b , refl))) ( modal-logic-closure-nec ab) modal-logic-implication-box : {a b : modal-formula i} → is-in-subtype (modal-logic-closure axioms) (a →ₘ b) → is-in-subtype (modal-logic-closure axioms) (□ₘ a) → is-in-subtype (modal-logic-closure axioms) (□ₘ b) modal-logic-implication-box {a} {b} ab box-a = modal-logic-closure-mp ( modal-logic-closure-mp ( modal-logic-closure-ax ( contains-ax-n (□ₘ (a →ₘ b) →ₘ □ₘ a →ₘ □ₘ b) (a , b , refl))) ( modal-logic-closure-nec ab)) ( box-a) weak-modal-logic-implication-dn : (a : modal-formula i) → is-in-subtype (weak-modal-logic-closure axioms) (a →ₘ ¬¬ₘ a) weak-modal-logic-implication-dn a = inv-deduction-ex-falso axioms contains-ax-k contains-ax-s contains-ax-dn ( a) ( ⊥ₘ) modal-logic-implication-dn : (a : modal-formula i) → is-in-subtype (modal-logic-closure axioms) (a →ₘ ¬¬ₘ a) modal-logic-implication-dn a = subset-weak-modal-logic-closure-modal-logic-closure (a →ₘ ¬¬ₘ a) ( weak-modal-logic-implication-dn a) weak-modal-logic-implication-negate : {a b : modal-formula i} → is-in-subtype axioms (a →ₘ b) → is-in-subtype (weak-modal-logic-closure axioms) (¬ₘ b →ₘ ¬ₘ a) weak-modal-logic-implication-negate {a} {b} ab = forward-implication ( deduction-theorem axioms contains-ax-k contains-ax-s (¬ₘ b) (¬ₘ a)) ( forward-implication ( deduction-theorem ( theory-add-formula (¬ₘ b) axioms) ( contains-ax-k') ( contains-ax-s') ( a) ( ⊥ₘ)) ( logic-ex-falso ( theory-add-formula a (theory-add-formula (¬ₘ b) axioms)) ( contains-ax-k'') ( contains-ax-s'') ( contains-ax-dn'') ( b) ( ⊥ₘ) ( weak-modal-logic-closure-mp ( weak-modal-logic-closure-ax ( subset-add-formula a (theory-add-formula (¬ₘ b) axioms) ( a →ₘ b) ( subset-add-formula (¬ₘ b) axioms (a →ₘ b) ab))) ( weak-modal-logic-closure-ax ( formula-in-add-formula a (theory-add-formula (¬ₘ b) axioms)))) ( weak-modal-logic-closure-ax ( subset-add-formula a (theory-add-formula (¬ₘ b) axioms) ( ¬ₘ b) ( formula-in-add-formula (¬ₘ b) axioms))))) where contains-ax-k' : ax-k i ⊆ theory-add-formula (¬ₘ b) axioms contains-ax-k' = transitive-subset-add-formula (¬ₘ b) axioms (ax-k i) contains-ax-k contains-ax-s' : ax-s i ⊆ theory-add-formula (¬ₘ b) axioms contains-ax-s' = transitive-subset-add-formula (¬ₘ b) axioms (ax-s i) contains-ax-s contains-ax-k'' : ax-k i ⊆ theory-add-formula a (theory-add-formula (¬ₘ b) axioms) contains-ax-k'' = transitive-subset-add-formula a (theory-add-formula (¬ₘ b) axioms) ( ax-k i) ( contains-ax-k') contains-ax-s'' : ax-s i ⊆ theory-add-formula a (theory-add-formula (¬ₘ b) axioms) contains-ax-s'' = transitive-subset-add-formula a (theory-add-formula (¬ₘ b) axioms) ( ax-s i) ( contains-ax-s') contains-ax-dn'' : ax-dn i ⊆ theory-add-formula a (theory-add-formula (¬ₘ b) axioms) contains-ax-dn'' = transitive-subset-add-formula a (theory-add-formula (¬ₘ b) axioms) ( ax-dn i) ( transitive-subset-add-formula (¬ₘ b) axioms (ax-dn i) contains-ax-dn) modal-logic-implication-negate : {a b : modal-formula i} → is-in-subtype axioms (a →ₘ b) → is-in-subtype (modal-logic-closure axioms) (¬ₘ b →ₘ ¬ₘ a) modal-logic-implication-negate {a} {b} ab = subset-weak-modal-logic-closure-modal-logic-closure (¬ₘ b →ₘ ¬ₘ a) ( weak-modal-logic-implication-negate ab) modal-logic-diamond-negate : {a : modal-formula i} → is-in-subtype (modal-logic-closure axioms) (◇ₘ ¬ₘ a) → is-in-subtype (modal-logic-closure axioms) (¬ₘ □ₘ a) modal-logic-diamond-negate {a} dia-a = modal-logic-transitivity ( dia-a) ( modal-logic-implication-box' (modal-logic-implication-dn a)) modal-logic-diamond-negate-implication : {a : modal-formula i} → is-modal-logic axioms → is-in-subtype axioms (◇ₘ ¬ₘ a →ₘ ¬ₘ □ₘ a) modal-logic-diamond-negate-implication {a} is-logic = is-logic (◇ₘ ¬ₘ a →ₘ ¬ₘ □ₘ a) ( modal-logic-implication-negate ( is-logic (□ₘ a →ₘ □ₘ ¬¬ₘ a) ( modal-logic-implication-box' ( modal-logic-implication-dn a))))
Recent changes
- 2024-05-05. Viktor Yudov. Fix filtration lemma and deduction theorem.
- 2024-05-05. Viktor Yudov. Refactor formulas and module names.
- 2024-05-05. Viktor Yudov. Refactor canonical model theorem.
- 2024-03-29. Viktor Yudov. Proof completeness of S5.