- atom {α : Type u} : α → Formula α
- falsum {α : Type u} : Formula α
- imp {α : Type u} : Formula α → Formula α → Formula α
- box {α : Type u} : Formula α → Formula α
Instances For
- LO.Modal.Formula.Kripke.Satisfies.semantics
- LO.Modal.Formula.Kripke.ValidOnFiniteFrameClass.semantics
- LO.Modal.Formula.Kripke.ValidOnFrame.semantics
- LO.Modal.Formula.Kripke.ValidOnFrameClass.semantics
- LO.Modal.Formula.Kripke.ValidOnModel.semantics
- LO.Modal.Formula.PLoN.Satisfies.semantics
- LO.Modal.Formula.PLoN.ValidOnFrame.instSemanticsFrame
- LO.Modal.Formula.PLoN.ValidOnFrameClass.instSemanticsFrameClass
- LO.Modal.Formula.PLoN.ValidOnModel.instSemanticsModel
- LO.Modal.Formula.instBasicModalLogicalConnective
- LO.Modal.Formula.instCoe
- LO.Modal.Formula.instCoeNNFormula
- LO.Modal.Formula.instDiaAbbrev
- LO.Modal.Formula.instEncodable
- LO.Modal.Formula.instLukasiewiczAbbrev
- LO.Modal.Formula.instRepr
- LO.Modal.Formula.instToString
- LO.Modal.Hilbert.Deduction.instSystemFormula
- LO.Modal.Hilbert.Kripke.instSemanticsFormulaNatWorldCanonicalModel
- LO.Modal.NNFormula.instCoeFormula
- LO.Modal.PLoN.CanonicalModel.instSatisfies
- LO.Modal.instCollectionFormulaTheory
@[reducible, inline]
Equations
- φ.neg = φ.imp LO.Modal.Formula.falsum
@[reducible, inline]
@[reducible, inline]
Equations
- LO.Modal.Formula.instRepr = { reprPrec := fun (t : LO.Modal.Formula α) (x : ℕ) => Std.Format.text t.toStr }
Equations
- LO.Modal.Formula.instToString = { toString := LO.Modal.Formula.toStr }
Equations
- LO.Modal.Formula.instCoe = { coe := LO.Modal.Formula.atom }
Formula complexity
Equations
- (LO.Modal.Formula.atom a).complexity = 0
- LO.Modal.Formula.falsum.complexity = 0
- (φ.imp ψ).complexity = φ.complexity ⊔ ψ.complexity + 1
- φ.box.complexity = φ.complexity + 1
Max numbers of □
Equations
- (LO.Modal.Formula.atom a).degree = 0
- LO.Modal.Formula.falsum.degree = 0
- (φ.imp ψ).degree = φ.degree ⊔ ψ.degree
- φ.box.degree = φ.degree + 1
def
LO.Modal.Formula.cases'
{α : Type u}
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (atom a))
(himp : (φ ψ : Formula α) → C (φ ➝ ψ))
(hbox : (φ : Formula α) → C (□φ))
(φ : Formula α)
:
C φ
Equations
- LO.Modal.Formula.cases' hfalsum hatom himp hbox LO.Modal.Formula.falsum = hfalsum
- LO.Modal.Formula.cases' hfalsum hatom himp hbox (LO.Modal.Formula.atom a) = hatom a
- LO.Modal.Formula.cases' hfalsum hatom himp hbox φ.box = hbox φ
- LO.Modal.Formula.cases' hfalsum hatom himp hbox (φ.imp ψ) = himp φ ψ
def
LO.Modal.Formula.rec'
{α : Type u}
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (atom a))
(himp : (φ ψ : Formula α) → C φ → C ψ → C (φ ➝ ψ))
(hbox : (φ : Formula α) → C φ → C (□φ))
(φ : Formula α)
:
C φ
Equations
- LO.Modal.Formula.rec' hfalsum hatom himp hbox LO.Modal.Formula.falsum = hfalsum
- LO.Modal.Formula.rec' hfalsum hatom himp hbox (LO.Modal.Formula.atom a) = hatom a
- LO.Modal.Formula.rec' hfalsum hatom himp hbox (φ.imp ψ) = himp φ ψ (LO.Modal.Formula.rec' hfalsum hatom himp hbox φ) (LO.Modal.Formula.rec' hfalsum hatom himp hbox ψ)
- LO.Modal.Formula.rec' hfalsum hatom himp hbox φ.box = hbox φ (LO.Modal.Formula.rec' hfalsum hatom himp hbox φ)
Equations
- One or more equations did not get rendered due to their size.
@[reducible, inline]
Equations
Equations
- (LO.Modal.Formula.atom a).subformulae = {LO.Modal.Formula.atom a}
- LO.Modal.Formula.falsum.subformulae = {⊥}
- (φ.imp ψ).subformulae = insert (φ ➝ ψ) (φ.subformulae ∪ ψ.subformulae)
- φ.box.subformulae = insert (□φ) φ.subformulae
@[simp]
theorem
LO.Modal.Formula.subformulae.mem_self
{α : Type u_1}
[DecidableEq α]
{φ : Formula α}
:
φ ∈ φ.subformulae
theorem
LO.Modal.Formula.subformulae.mem_imp
{α : Type u_1}
[DecidableEq α]
{φ ψ χ : Formula α}
(h : ψ ➝ χ ∈ φ.subformulae)
:
theorem
LO.Modal.Formula.subformulae.mem_imp₁
{α : Type u_1}
[DecidableEq α]
{φ ψ χ : Formula α}
(h : ψ ➝ χ ∈ φ.subformulae)
:
ψ ∈ φ.subformulae
theorem
LO.Modal.Formula.subformulae.mem_imp₂
{α : Type u_1}
[DecidableEq α]
{φ ψ χ : Formula α}
(h : ψ ➝ χ ∈ φ.subformulae)
:
χ ∈ φ.subformulae
theorem
LO.Modal.Formula.subformulae.mem_box
{α : Type u_1}
[DecidableEq α]
{φ ψ : Formula α}
(h : □ψ ∈ φ.subformulae := by assumption)
:
ψ ∈ φ.subformulae
@[simp]
theorem
LO.Modal.Formula.subformulae.complexity_lower
{α : Type u_1}
[DecidableEq α]
{φ ψ : Formula α}
(h : ψ ∈ φ.subformulae)
:
ψ.complexity ≤ φ.complexity
instance
LO.Modal.SubformulaClosed.instSubformulaClosedSubformulae
{α : Type u_1}
[DecidableEq α]
{φ : Formula α}
:
φ.subformulae.SubformulaClosed
instance
LO.Modal.Theory.SubformulaClosed.instToSetFormulaSubformulae
{α : Type u_1}
{φ : Formula α}
[DecidableEq α]
:
SubformulaClosed ↑φ.subformulae
def
LO.Modal.Formula.cases_neg
{α : Type u_1}
[DecidableEq α]
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (atom a))
(hneg : (φ : Formula α) → C (∼φ))
(himp : (φ ψ : Formula α) → ψ ≠ ⊥ → C (φ ➝ ψ))
(hbox : (φ : Formula α) → C (□φ))
(φ : Formula α)
:
C φ
Equations
- LO.Modal.Formula.cases_neg hfalsum hatom hneg himp hbox LO.Modal.Formula.falsum = hfalsum
- LO.Modal.Formula.cases_neg hfalsum hatom hneg himp hbox (LO.Modal.Formula.atom a) = hatom a
- LO.Modal.Formula.cases_neg hfalsum hatom hneg himp hbox φ.box = hbox φ
- LO.Modal.Formula.cases_neg hfalsum hatom hneg himp hbox (φ.imp LO.Modal.Formula.falsum) = hneg φ
- LO.Modal.Formula.cases_neg hfalsum hatom hneg himp hbox (φ.imp ψ) = if e : ψ = ⊥ then ⋯ ▸ hneg φ else himp φ ψ e
def
LO.Modal.Formula.rec_neg
{α : Type u_1}
[DecidableEq α]
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (atom a))
(hneg : (φ : Formula α) → C φ → C (∼φ))
(himp : (φ ψ : Formula α) → ψ ≠ ⊥ → C φ → C ψ → C (φ ➝ ψ))
(hbox : (φ : Formula α) → C φ → C (□φ))
(φ : Formula α)
:
C φ
Equations
- One or more equations did not get rendered due to their size.
- LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox LO.Modal.Formula.falsum = hfalsum
- LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox (LO.Modal.Formula.atom a) = hatom a
- LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox φ.box = hbox φ (LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox φ)
- LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox (φ.imp LO.Modal.Formula.falsum) = hneg φ (LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox φ)
def
LO.Modal.Formula.rec_negated
{α : Type u_1}
[DecidableEq α]
{C : Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (atom a))
(hneg : (φ : Formula α) → C φ → C (∼φ))
(himp : (φ ψ : Formula α) → ¬(φ ➝ ψ).negated = true → C φ → C ψ → C (φ ➝ ψ))
(hbox : (φ : Formula α) → C φ → C (□φ))
(φ : Formula α)
:
C φ
Equations
- One or more equations did not get rendered due to their size.
- LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox LO.Modal.Formula.falsum = hfalsum
- LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox (LO.Modal.Formula.atom a) = hatom a
- LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox φ.box = hbox φ (LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox φ)
- LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox (φ.imp LO.Modal.Formula.falsum) = hneg φ (LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox φ)
@[irreducible]
Equations
- One or more equations did not get rendered due to their size.
- LO.Modal.Formula.ofNat 0 = none
Equations
- LO.Modal.Formula.instEncodable = { encode := LO.Modal.Formula.toNat, decode := LO.Modal.Formula.ofNat, encodek := ⋯ }
Equations
- LO.Modal.Formula.subst σ (LO.Modal.Formula.atom a) = σ a
- LO.Modal.Formula.subst σ LO.Modal.Formula.falsum = ⊥
- LO.Modal.Formula.subst σ φ.box = □LO.Modal.Formula.subst σ φ
- LO.Modal.Formula.subst σ (φ.imp ψ) = LO.Modal.Formula.subst σ φ ➝ LO.Modal.Formula.subst σ ψ
- closed {φ : Formula α} : φ ∈ T → ∀ {σ : α → Formula α}, Formula.subst σ φ ∈ T
def
LO.Modal.Theory.instSubstClosed
{α : Type u_1}
{T : Theory α}
(hAtom : ∀ (a : α), Formula.atom a ∈ T → ∀ {σ : α → Formula α}, Formula.subst σ (Formula.atom a) ∈ T)
(hImp : ∀ {φ ψ : Formula α}, φ ➝ ψ ∈ T → ∀ {σ : α → Formula α}, Formula.subst σ (φ ➝ ψ) ∈ T)
(hBox : ∀ {φ : Formula α}, □φ ∈ T → ∀ {σ : α → Formula α}, Formula.subst σ (□φ) ∈ T)
:
T.SubstClosed
Equations
- ⋯ = ⋯
theorem
LO.Modal.Theory.SubstClosed.mem_atom
{α : Type u_1}
{T : Theory α}
[T.SubstClosed]
{a : α}
{σ : α → Formula α}
(h : Formula.atom a ∈ T)
:
Formula.subst σ (Formula.atom a) ∈ T
theorem
LO.Modal.Theory.SubstClosed.mem_bot
{α : Type u_1}
{T : Theory α}
[T.SubstClosed]
{σ : α → Formula α}
(h : ⊥ ∈ T)
:
Formula.subst σ ⊥ ∈ T
instance
LO.Modal.Theory.SubstClosed.union
{α : Type u_1}
{T₁ T₂ : Theory α}
[T₁_closed : T₁.SubstClosed]
[T₂_closed : T₂.SubstClosed]
:
(T₁ ∪ T₂).SubstClosed