- atom: {α : Type u} → α → LO.Modal.Formula α
- falsum: {α : Type u} → LO.Modal.Formula α
- imp: {α : Type u} → LO.Modal.Formula α → LO.Modal.Formula α → LO.Modal.Formula α
- box: {α : Type u} → LO.Modal.Formula α → LO.Modal.Formula α
Instances For
Equations
- LO.Modal.instDecidableEqFormula = LO.Modal.decEqFormula✝
@[reducible, inline]
Equations
- LO.Modal.Formula.verum = LO.Modal.Formula.falsum.imp LO.Modal.Formula.falsum
Instances For
@[reducible, inline]
Equations
- LO.Modal.Formula.top = LO.Modal.Formula.falsum.imp LO.Modal.Formula.falsum
Instances For
Equations
- LO.Modal.Formula.instBasicModalLogicalConnective = LO.BasicModalLogicalConnective.mk
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
Instances For
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 }
@[simp]
Formula complexity
Equations
Instances For
Max numbers of □
Equations
Instances For
@[simp]
@[simp]
def
LO.Modal.Formula.cases'
{α : Type u}
{C : LO.Modal.Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (LO.Modal.Formula.atom a))
(himp : (φ ψ : LO.Modal.Formula α) → C (φ ➝ ψ))
(hbox : (φ : LO.Modal.Formula α) → C (□φ))
(φ : LO.Modal.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 φ ψ
Instances For
def
LO.Modal.Formula.rec'
{α : Type u}
{C : LO.Modal.Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (LO.Modal.Formula.atom a))
(himp : (φ ψ : LO.Modal.Formula α) → C φ → C ψ → C (φ ➝ ψ))
(hbox : (φ : LO.Modal.Formula α) → C φ → C (□φ))
(φ : LO.Modal.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 φ)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- LO.Modal.Formula.instDecidableEq = LO.Modal.Formula.hasDecEq
Instances For
@[reducible, inline]
Equations
Instances For
Equations
- LO.Modal.instCollectionFormulaTheory = inferInstance
@[simp]
theorem
LO.Modal.Formula.subformulae.mem_self
{α : Type u_1}
[DecidableEq α]
{φ : LO.Modal.Formula α}
:
φ ∈ φ.subformulae
theorem
LO.Modal.Formula.subformulae.mem_imp
{α : Type u_1}
[DecidableEq α]
{φ ψ χ : LO.Modal.Formula α}
(h : ψ ➝ χ ∈ φ.subformulae)
:
theorem
LO.Modal.Formula.subformulae.mem_imp₁
{α : Type u_1}
[DecidableEq α]
{φ ψ χ : LO.Modal.Formula α}
(h : ψ ➝ χ ∈ φ.subformulae)
:
ψ ∈ φ.subformulae
theorem
LO.Modal.Formula.subformulae.mem_imp₂
{α : Type u_1}
[DecidableEq α]
{φ ψ χ : LO.Modal.Formula α}
(h : ψ ➝ χ ∈ φ.subformulae)
:
χ ∈ φ.subformulae
theorem
LO.Modal.Formula.subformulae.mem_box
{α : Type u_1}
[DecidableEq α]
{φ ψ : LO.Modal.Formula α}
(h : □ψ ∈ φ.subformulae := by assumption)
:
ψ ∈ φ.subformulae
@[simp]
theorem
LO.Modal.Formula.subformulae.complexity_lower
{α : Type u_1}
[DecidableEq α]
{φ ψ : LO.Modal.Formula α}
(h : ψ ∈ φ.subformulae)
:
ψ.complexity ≤ φ.complexity
- box_closed : ∀ {φ : LO.Modal.Formula α}, □φ ∈ X → φ ∈ X
Instances
instance
LO.Modal.SubformulaClosed.instSubformulaClosedSubformulae
{α : Type u_1}
[DecidableEq α]
{φ : LO.Modal.Formula α}
:
φ.subformulae.SubformulaClosed
Equations
- ⋯ = ⋯
theorem
LO.Modal.SubformulaClosed.mem_box
{α : Type u_1}
{φ : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[closed : X.SubformulaClosed]
(h : □φ ∈ X)
:
φ ∈ X
theorem
LO.Modal.SubformulaClosed.mem_imp
{α : Type u_1}
{φ : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[closed : X.SubformulaClosed]
{ψ : LO.Modal.Formula α}
(h : φ ➝ ψ ∈ X)
:
theorem
LO.Modal.SubformulaClosed.mem_imp₁
{α : Type u_1}
{φ : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[closed : X.SubformulaClosed]
{ψ : LO.Modal.Formula α}
(h : φ ➝ ψ ∈ X)
:
φ ∈ X
theorem
LO.Modal.SubformulaClosed.mem_imp₂
{α : Type u_1}
{φ : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[closed : X.SubformulaClosed]
{ψ : LO.Modal.Formula α}
(h : φ ➝ ψ ∈ X)
:
ψ ∈ X
- box_closed : ∀ {φ : LO.Modal.Formula α}, □φ ∈ T → φ ∈ T
Instances
instance
LO.Modal.Theory.SubformulaClosed.instToSetFormulaSubformulae
{α : Type u_1}
{φ : LO.Modal.Formula α}
[DecidableEq α]
:
LO.Modal.Theory.SubformulaClosed ↑φ.subformulae
Equations
- ⋯ = ⋯
theorem
LO.Modal.Theory.SubformulaClosed.mem_box
{α : Type u_1}
{φ : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
(h : □φ ∈ T)
:
φ ∈ T
theorem
LO.Modal.Theory.SubformulaClosed.mem_imp
{α : Type u_1}
{φ : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
{ψ : LO.Modal.Formula α}
(h : φ ➝ ψ ∈ T)
:
theorem
LO.Modal.Theory.SubformulaClosed.mem_imp₁
{α : Type u_1}
{φ : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
{ψ : LO.Modal.Formula α}
(h : φ ➝ ψ ∈ T)
:
φ ∈ T
theorem
LO.Modal.Theory.SubformulaClosed.mem_imp₂
{α : Type u_1}
{φ : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
{ψ : LO.Modal.Formula α}
(h : φ ➝ ψ ∈ T)
:
ψ ∈ T
def
LO.Modal.Formula.cases_neg
{α : Type u_1}
[DecidableEq α]
{C : LO.Modal.Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (LO.Modal.Formula.atom a))
(hneg : (φ : LO.Modal.Formula α) → C (∼φ))
(himp : (φ ψ : LO.Modal.Formula α) → ψ ≠ ⊥ → C (φ ➝ ψ))
(hbox : (φ : LO.Modal.Formula α) → C (□φ))
(φ : LO.Modal.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
Instances For
def
LO.Modal.Formula.rec_neg
{α : Type u_1}
[DecidableEq α]
{C : LO.Modal.Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (LO.Modal.Formula.atom a))
(hneg : (φ : LO.Modal.Formula α) → C φ → C (∼φ))
(himp : (φ ψ : LO.Modal.Formula α) → ψ ≠ ⊥ → C φ → C ψ → C (φ ➝ ψ))
(hbox : (φ : LO.Modal.Formula α) → C φ → C (□φ))
(φ : LO.Modal.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 φ)
Instances For
@[simp]
@[simp]
def
LO.Modal.Formula.rec_negated
{α : Type u_1}
[DecidableEq α]
{C : LO.Modal.Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (LO.Modal.Formula.atom a))
(hneg : (φ : LO.Modal.Formula α) → C φ → C (∼φ))
(himp : (φ ψ : LO.Modal.Formula α) → ¬(φ ➝ ψ).negated = true → C φ → C ψ → C (φ ➝ ψ))
(hbox : (φ : LO.Modal.Formula α) → C φ → C (□φ))
(φ : LO.Modal.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 φ)
Instances For
Equations
Instances For
@[irreducible]
Equations
- One or more equations did not get rendered due to their size.
- LO.Modal.Formula.ofNat 0 = none
Instances For
theorem
LO.Modal.Formula.ofNat_toNat
{α : Type u_1}
[Encodable α]
(φ : LO.Modal.Formula α)
:
LO.Modal.Formula.ofNat φ.toNat = some φ
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 σ ψ
Instances For
@[simp]
theorem
LO.Modal.Formula.subst_atom
{α : Type u_1}
{σ : α → LO.Modal.Formula α}
{a : α}
:
LO.Modal.Formula.subst σ (LO.Modal.Formula.atom a) = σ a
@[simp]
@[simp]
theorem
LO.Modal.Formula.subst_imp
{α : Type u_1}
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (φ ➝ ψ) = LO.Modal.Formula.subst σ φ ➝ LO.Modal.Formula.subst σ ψ
@[simp]
theorem
LO.Modal.Formula.subst_neg
{α : Type u_1}
{φ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (∼φ) = ∼LO.Modal.Formula.subst σ φ
@[simp]
theorem
LO.Modal.Formula.subst_and
{α : Type u_1}
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (φ ⋏ ψ) = LO.Modal.Formula.subst σ φ ⋏ LO.Modal.Formula.subst σ ψ
@[simp]
theorem
LO.Modal.Formula.subst_or
{α : Type u_1}
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (φ ⋎ ψ) = LO.Modal.Formula.subst σ φ ⋎ LO.Modal.Formula.subst σ ψ
@[simp]
theorem
LO.Modal.Formula.subst_iff
{α : Type u_1}
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (φ ⭤ ψ) = LO.Modal.Formula.subst σ φ ⭤ LO.Modal.Formula.subst σ ψ
@[simp]
theorem
LO.Modal.Formula.subst_box
{α : Type u_1}
{φ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (□φ) = □LO.Modal.Formula.subst σ φ
@[simp]
theorem
LO.Modal.Formula.subst_dia
{α : Type u_1}
{φ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
:
LO.Modal.Formula.subst σ (◇φ) = ◇LO.Modal.Formula.subst σ φ
- closed : ∀ {φ : LO.Modal.Formula α}, φ ∈ T → ∀ {σ : α → LO.Modal.Formula α}, LO.Modal.Formula.subst σ φ ∈ T
Instances
def
LO.Modal.Theory.instSubstClosed
{α : Type u_1}
{T : LO.Modal.Theory α}
(hAtom :
∀ (a : α),
LO.Modal.Formula.atom a ∈ T →
∀ {σ : α → LO.Modal.Formula α}, LO.Modal.Formula.subst σ (LO.Modal.Formula.atom a) ∈ T)
(hImp : ∀ {φ ψ : LO.Modal.Formula α}, φ ➝ ψ ∈ T → ∀ {σ : α → LO.Modal.Formula α}, LO.Modal.Formula.subst σ (φ ➝ ψ) ∈ T)
(hBox : ∀ {φ : LO.Modal.Formula α}, □φ ∈ T → ∀ {σ : α → LO.Modal.Formula α}, LO.Modal.Formula.subst σ (□φ) ∈ T)
:
T.SubstClosed
Equations
- ⋯ = ⋯
Instances For
theorem
LO.Modal.Theory.SubstClosed.mem_atom
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{a : α}
{σ : α → LO.Modal.Formula α}
(h : LO.Modal.Formula.atom a ∈ T)
:
theorem
LO.Modal.Theory.SubstClosed.mem_bot
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{σ : α → LO.Modal.Formula α}
(h : ⊥ ∈ T)
:
LO.Modal.Formula.subst σ ⊥ ∈ T
theorem
LO.Modal.Theory.SubstClosed.mem_imp
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
(h : φ ➝ ψ ∈ T)
:
LO.Modal.Formula.subst σ (φ ➝ ψ) ∈ T
theorem
LO.Modal.Theory.SubstClosed.mem_neg
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{φ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
(h : ∼φ ∈ T)
:
LO.Modal.Formula.subst σ (∼φ) ∈ T
theorem
LO.Modal.Theory.SubstClosed.mem_and
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
(h : φ ⋏ ψ ∈ T)
:
LO.Modal.Formula.subst σ (φ ⋏ ψ) ∈ T
theorem
LO.Modal.Theory.SubstClosed.mem_or
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{φ ψ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
(h : φ ⋎ ψ ∈ T)
:
LO.Modal.Formula.subst σ (φ ⋎ ψ) ∈ T
theorem
LO.Modal.Theory.SubstClosed.mem_box
{α : Type u_1}
{T : LO.Modal.Theory α}
[T.SubstClosed]
{φ : LO.Modal.Formula α}
{σ : α → LO.Modal.Formula α}
(h : □φ ∈ T)
:
LO.Modal.Formula.subst σ (□φ) ∈ T
instance
LO.Modal.Theory.SubstClosed.union
{α : Type u_1}
{T₁ T₂ : LO.Modal.Theory α}
[T₁_closed : T₁.SubstClosed]
[T₂_closed : T₂.SubstClosed]
:
(T₁ ∪ T₂).SubstClosed
Equations
- ⋯ = ⋯