Logical Equivalence in Modal Logic #
This module defines logical equivalence for modal propositions. The definitions are parametric on the class of models under consideration.
We also instantiate LogicalEquivalence for Modal Logic K, i.e., equivalence
for the class of all models.
def
Cslib.Logic.Modal.Proposition.Equiv
{World : Type u_1}
{Atom : Type u_2}
(S : Set (Model World Atom))
(φ₁ φ₂ : Proposition Atom)
:
The modal propositions φ₁ and φ₂ are equivalent in the class of models S.
Equations
- Cslib.Logic.Modal.Proposition.Equiv S φ₁ φ₂ = ∀ m ∈ S, ∀ (w : World), Cslib.Logic.InferenceSystem.derivation Cslib.Logic.InferenceSystem.Default { m := m, w := w, φ := φ₁.iff φ₂ }
Instances For
The modal propositions φ₁ and φ₂ are equivalent in the class of models S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The modal propositions φ₁ and φ₂ are equivalent in the class of models S.
Equations
- Cslib.Logic.Modal.«term_≡_» = Lean.ParserDescr.trailingNode `Cslib.Logic.Modal.«term_≡_» 1022 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≡ ") (Lean.ParserDescr.cat `term 0))
Instances For
theorem
Cslib.Logic.Modal.Proposition.equiv_def
{World : Type u_1}
{Atom : Type u_2}
(S : Set (Model World Atom))
(φ₁ φ₂ : Proposition Atom)
:
Equiv S φ₁ φ₂ ↔ ∀ m ∈ S, ∀ (w : World), InferenceSystem.derivation InferenceSystem.Default { m := m, w := w, φ := φ₁.iff φ₂ }
theorem
Cslib.Logic.Modal.Proposition.equiv_iff
{World : Type u_1}
{Atom : Type u_2}
(S : Set (Model World Atom))
(φ₁ φ₂ : Proposition Atom)
:
Equiv S φ₁ φ₂ ↔ ∀ m ∈ S,
∀ (w : World),
InferenceSystem.derivation InferenceSystem.Default { m := m, w := w, φ := φ₁ } ↔ InferenceSystem.derivation InferenceSystem.Default { m := m, w := w, φ := φ₂ }
Propositional contexts.
- hole {Atom : Type u} : Context Atom
- not {Atom : Type u} (c : Context Atom) : Context Atom
- andL {Atom : Type u} (c : Context Atom) (φ : Proposition Atom) : Context Atom
- andR {Atom : Type u} (φ : Proposition Atom) (c : Context Atom) : Context Atom
- diamond {Atom : Type u} (c : Context Atom) : Context Atom
Instances For
def
Cslib.Logic.Modal.Proposition.Context.fill
{Atom : Type u_1}
(c : Context Atom)
(φ : Proposition Atom)
:
Proposition Atom
Replaces a hole in a propositional context with a proposition.
Equations
Instances For
@[implicit_reducible]
instance
Cslib.Logic.Modal.instHasContextProposition
{Atom : Type u_1}
:
HasContext (Proposition Atom)
Equations
theorem
Cslib.Logic.Modal.Proposition.Context.fill_def
{Atom : Type u_1}
{φ : Proposition Atom}
{Γ : HasContext.Context (Proposition Atom)}
:
instance
Cslib.Logic.Modal.instIsEquivPropositionEquiv
{World : Type u_1}
{Atom : Type u_2}
(S : Set (Model World Atom))
:
IsEquiv (Proposition Atom) (Proposition.Equiv S)
Logical equivalence is an equivalence relation.
instance
Cslib.Logic.Modal.instCongruencePropositionEquiv
{World : Type u_1}
{Atom : Type u_2}
(S : Set (Model World Atom))
:
Congruence (Proposition Atom) (Proposition.Equiv S)
Logical equivalence is a congruence.
@[implicit_reducible]
instance
Cslib.Logic.Modal.judgementalContext
{World : Type u_1}
{Atom : Type u_2}
:
HasHContext (Judgement World Atom) (Proposition Atom)
Equations
- Cslib.Logic.Modal.judgementalContext = { Context := Cslib.Logic.Modal.Satisfies.Context World Atom, fill := Cslib.Logic.Modal.Satisfies.Context.fill }
@[implicit_reducible]
instance
Cslib.Logic.Modal.instLogicalEquivalencePropositionJudgementBundled
{Atom : Type u_1}
{World : Type u_2}
:
LogicalEquivalence (Proposition Atom) (Judgement World Atom) Satisfies.Bundled
Logical equivalence for Modal Logic K. That is, no assumptions on models are made.
Equations
- Cslib.Logic.Modal.instLogicalEquivalencePropositionJudgementBundled = { eqv := Cslib.Logic.Modal.Proposition.Equiv Set.univ, congruence := ⋯, eqvFillValid := ⋯ }