@[reducible, inline]
Instances For
@[reducible, inline]
Instances For
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 }
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
Instances For
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
Instances For
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 φ ψ
Instances For
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 φ)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[reducible, inline]
Equations
Instances For
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
Instances For
@[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
Instances For
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 φ)
Instances For
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 φ)
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
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
- closed {φ : Formula α} : φ ∈ T → ∀ {σ : α → Formula α}, Formula.subst σ φ ∈ T
Instances
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
- ⋯ = ⋯
Instances For
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