- 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
instance
LO.Modal.instDecidableEqFormula :
{α : Type u_1} → [inst : DecidableEq α] → DecidableEq (LO.Modal.Formula α)
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
@[reducible, inline]
Equations
- p.or q = p.neg.imp q
Instances For
@[reducible, inline]
Equations
- p.and q = (p.imp q.neg).neg
Instances For
Equations
- LO.Modal.Formula.instBasicModalLogicalConnective = LO.BasicModalLogicalConnective.mk
Equations
- LO.Modal.Formula.instLukasiewiczAbbrev = { top := ⋯, neg := ⋯, or := ⋯, and := ⋯ }
Equations
- LO.Modal.Formula.instDiaAbbrev = { dia_abbrev := ⋯ }
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]
theorem
LO.Modal.Formula.and_inj
{α : Type u}
(p₁ : LO.Modal.Formula α)
(q₁ : LO.Modal.Formula α)
(p₂ : LO.Modal.Formula α)
(q₂ : LO.Modal.Formula α)
:
@[simp]
theorem
LO.Modal.Formula.or_inj
{α : Type u}
(p₁ : LO.Modal.Formula α)
(q₁ : LO.Modal.Formula α)
(p₂ : LO.Modal.Formula α)
(q₂ : LO.Modal.Formula α)
:
@[simp]
theorem
LO.Modal.Formula.imp_inj
{α : Type u}
(p₁ : LO.Modal.Formula α)
(q₁ : LO.Modal.Formula α)
(p₂ : LO.Modal.Formula α)
(q₂ : LO.Modal.Formula α)
:
@[simp]
Formula complexity
Equations
Instances For
Max numbers of □
Equations
Instances For
@[simp]
@[simp]
theorem
LO.Modal.Formula.degree_imp
{α : Type u}
(p : LO.Modal.Formula α)
(q : LO.Modal.Formula α)
:
def
LO.Modal.Formula.cases'
{α : Type u}
{C : LO.Modal.Formula α → Sort w}
(hfalsum : C ⊥)
(hatom : (a : α) → C (LO.Modal.Formula.atom a))
(himp : (p q : LO.Modal.Formula α) → C (p ➝ q))
(hbox : (p : LO.Modal.Formula α) → C (□p))
(p : LO.Modal.Formula α)
:
C p
Equations
- LO.Modal.Formula.cases' hfalsum hatom himp hbox x = match x with | LO.Modal.Formula.falsum => hfalsum | LO.Modal.Formula.atom a => hatom a | p.box => hbox p | p.imp q => himp p q
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 : (p q : LO.Modal.Formula α) → C p → C q → C (p ➝ q))
(hbox : (p : LO.Modal.Formula α) → C p → C (□p))
(p : LO.Modal.Formula α)
:
C p
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 (p.imp q) = himp p q (LO.Modal.Formula.rec' hfalsum hatom himp hbox p) (LO.Modal.Formula.rec' hfalsum hatom himp hbox q)
- LO.Modal.Formula.rec' hfalsum hatom himp hbox p.box = hbox p (LO.Modal.Formula.rec' hfalsum hatom himp hbox p)
Instances For
def
LO.Modal.Formula.hasDecEq
{α : Type u}
[DecidableEq α]
(p : LO.Modal.Formula α)
(q : LO.Modal.Formula α)
:
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
Equations
- LO.Modal.term𝒮_ = Lean.ParserDescr.node `LO.Modal.term𝒮_ 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "𝒮 ") (Lean.ParserDescr.cat `term 70))
Instances For
@[simp]
theorem
LO.Modal.Formula.Subformulas.mem_self
{α : Type u_1}
[DecidableEq α]
(p : LO.Modal.Formula α)
:
theorem
LO.Modal.Formula.Subformulas.mem_imp
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
{r : LO.Modal.Formula α}
(h : autoParam (q ➝ r ∈ 𝒮 p) _auto✝)
:
theorem
LO.Modal.Formula.Subformulas.mem_imp₁
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
{r : LO.Modal.Formula α}
(h : autoParam (q ➝ r ∈ 𝒮 p) _auto✝)
:
theorem
LO.Modal.Formula.Subformulas.mem_imp₂
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
{r : LO.Modal.Formula α}
(h : autoParam (q ➝ r ∈ 𝒮 p) _auto✝)
:
theorem
LO.Modal.Formula.Subformulas.mem_box
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
(h : autoParam (□q ∈ 𝒮 p) _auto✝)
:
@[simp]
theorem
LO.Modal.Formula.Subformulas.complexity_lower
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
(h : q ∈ 𝒮 p)
:
q.complexity ≤ p.complexity
- box_closed : ∀ {p : LO.Modal.Formula α}, □p ∈ X → p ∈ X
Instances
theorem
LO.Modal.Formulae.SubformulaClosed.imp_closed
{α : Type u_1}
{X : LO.Modal.Formulae α}
[self : X.SubformulaClosed]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
:
theorem
LO.Modal.Formulae.SubformulaClosed.box_closed
{α : Type u_1}
{X : LO.Modal.Formulae α}
[self : X.SubformulaClosed]
{p : LO.Modal.Formula α}
:
instance
LO.Modal.SubformulaClosed.instSubformulaClosedSubformulas
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
:
(𝒮 p).SubformulaClosed
Equations
- LO.Modal.SubformulaClosed.instSubformulaClosedSubformulas = { imp_closed := ⋯, box_closed := ⋯ }
theorem
LO.Modal.SubformulaClosed.sub_mem_box
{α : Type u_1}
{p : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[T_closed : X.SubformulaClosed]
(h : □p ∈ X)
:
p ∈ X
theorem
LO.Modal.SubformulaClosed.sub_mem_imp
{α : Type u_1}
{p : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[T_closed : X.SubformulaClosed]
{q : LO.Modal.Formula α}
(h : p ➝ q ∈ X)
:
theorem
LO.Modal.SubformulaClosed.sub_mem_imp₁
{α : Type u_1}
{p : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[T_closed : X.SubformulaClosed]
{q : LO.Modal.Formula α}
(h : p ➝ q ∈ X)
:
p ∈ X
theorem
LO.Modal.SubformulaClosed.sub_mem_imp₂
{α : Type u_1}
{p : LO.Modal.Formula α}
{X : LO.Modal.Formulae α}
[T_closed : X.SubformulaClosed]
{q : LO.Modal.Formula α}
(h : p ➝ q ∈ X)
:
q ∈ X
- box_closed : ∀ {p : LO.Modal.Formula α}, □p ∈ T → p ∈ T
Instances
theorem
LO.Modal.Theory.SubformulaClosed.imp_closed
{α : Type u_1}
{T : LO.Modal.Theory α}
[self : T.SubformulaClosed]
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
:
theorem
LO.Modal.Theory.SubformulaClosed.box_closed
{α : Type u_1}
{T : LO.Modal.Theory α}
[self : T.SubformulaClosed]
{p : LO.Modal.Formula α}
:
instance
LO.Modal.Theory.SubformulaClosed.instToSetFormulaSubformulas
{α : Type u_1}
[DecidableEq α]
{p : LO.Modal.Formula α}
:
Equations
- LO.Modal.Theory.SubformulaClosed.instToSetFormulaSubformulas = { imp_closed := ⋯, box_closed := ⋯ }
theorem
LO.Modal.Theory.SubformulaClosed.sub_mem_box
{α : Type u_1}
{p : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
(h : □p ∈ T)
:
p ∈ T
theorem
LO.Modal.Theory.SubformulaClosed.sub_mem_imp
{α : Type u_1}
{p : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
{q : LO.Modal.Formula α}
(h : p ➝ q ∈ T)
:
theorem
LO.Modal.Theory.SubformulaClosed.sub_mem_imp₁
{α : Type u_1}
{p : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
{q : LO.Modal.Formula α}
(h : p ➝ q ∈ T)
:
p ∈ T
theorem
LO.Modal.Theory.SubformulaClosed.sub_mem_imp₂
{α : Type u_1}
{p : LO.Modal.Formula α}
{T : LO.Modal.Theory α}
[T_closed : T.SubformulaClosed]
{q : LO.Modal.Formula α}
(h : p ➝ q ∈ T)
:
q ∈ 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 : (p : LO.Modal.Formula α) → C (∼p))
(himp : (p q : LO.Modal.Formula α) → q ≠ ⊥ → C (p ➝ q))
(hbox : (p : LO.Modal.Formula α) → C (□p))
(p : LO.Modal.Formula α)
:
C p
Equations
- One or more equations did not get rendered due to their size.
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 : (p : LO.Modal.Formula α) → C p → C (∼p))
(himp : (p q : LO.Modal.Formula α) → q ≠ ⊥ → C p → C q → C (p ➝ q))
(hbox : (p : LO.Modal.Formula α) → C p → C (□p))
(p : LO.Modal.Formula α)
:
C p
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 p.box = hbox p (LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox p)
- LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox (p.imp LO.Modal.Formula.falsum) = hneg p (LO.Modal.Formula.rec_neg hfalsum hatom hneg himp hbox p)
Instances For
Equations
Instances For
@[simp]
@[simp]
theorem
LO.Modal.Formula.negated_imp
{α : Type u_1}
{p : LO.Modal.Formula α}
{q : LO.Modal.Formula α}
:
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 : (p : LO.Modal.Formula α) → C p → C (∼p))
(himp : (p q : LO.Modal.Formula α) → ¬(p ➝ q).negated = true → C p → C q → C (p ➝ q))
(hbox : (p : LO.Modal.Formula α) → C p → C (□p))
(p : LO.Modal.Formula α)
:
C p
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 p.box = hbox p (LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox p)
- LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox (p.imp LO.Modal.Formula.falsum) = hneg p (LO.Modal.Formula.rec_negated hfalsum hatom hneg himp hbox p)
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 α]
(p : LO.Modal.Formula α)
:
LO.Modal.Formula.ofNat p.toNat = some p
Equations
- LO.Modal.Formula.instEncodable = { encode := LO.Modal.Formula.toNat, decode := LO.Modal.Formula.ofNat, encodek := ⋯ }