Documentation

Logic.Modal.Formula

instance LO.Modal.instDecidableEqFormula :
{α : Type u_1} → [inst : DecidableEq α] → DecidableEq (LO.Modal.Formula α)
Equations
  • LO.Modal.instDecidableEqFormula = LO.Modal.decEqFormula✝
@[reducible, inline]
Equations
  • p.neg = p.imp LO.Modal.Formula.falsum
@[reducible, inline]
Equations
  • LO.Modal.Formula.verum = LO.Modal.Formula.falsum.imp LO.Modal.Formula.falsum
@[reducible, inline]
Equations
  • LO.Modal.Formula.top = LO.Modal.Formula.falsum.imp LO.Modal.Formula.falsum
@[reducible, inline]
Equations
  • p.or q = p.neg.imp q
@[reducible, inline]
Equations
  • p.and q = (p.imp q.neg).neg
@[reducible, inline]
Equations
  • p.dia = p.neg.box.neg
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
Equations
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.or_eq {α : Type u} (p : LO.Modal.Formula α) (q : LO.Modal.Formula α) :
p.or q = p q
theorem LO.Modal.Formula.and_eq {α : Type u} (p : LO.Modal.Formula α) (q : LO.Modal.Formula α) :
p.and q = p q
theorem LO.Modal.Formula.imp_eq {α : Type u} (p : LO.Modal.Formula α) (q : LO.Modal.Formula α) :
p.imp q = p q
theorem LO.Modal.Formula.neg_eq {α : Type u} (p : LO.Modal.Formula α) :
p.neg = p
theorem LO.Modal.Formula.box_eq {α : Type u} (p : LO.Modal.Formula α) :
p.box = p
theorem LO.Modal.Formula.dia_eq {α : Type u} (p : LO.Modal.Formula α) :
p.dia = p
theorem LO.Modal.Formula.iff_eq {α : Type u} (p : LO.Modal.Formula α) (q : LO.Modal.Formula α) :
p q = (p q) (q p)
theorem LO.Modal.Formula.falsum_eq {α : Type u} :
LO.Modal.Formula.falsum =
@[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 α) :
p₁ p₂ = q₁ q₂ p₁ = q₁ p₂ = q₂
@[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 α) :
p₁ p₂ = q₁ q₂ p₁ = q₁ p₂ = q₂
@[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 α) :
p₁ p₂ = q₁ q₂ p₁ = q₁ p₂ = q₂
@[simp]
theorem LO.Modal.Formula.neg_inj {α : Type u} (p : LO.Modal.Formula α) (q : LO.Modal.Formula α) :
p = q p = q

Formula complexity

Equations
  • (LO.Modal.Formula.atom a).complexity = 0
  • LO.Modal.Formula.falsum.complexity = 0
  • (p.imp q).complexity = max p.complexity q.complexity + 1
  • p.box.complexity = p.complexity + 1

Max numbers of

Equations
@[simp]
theorem LO.Modal.Formula.degree_neg {α : Type u} (p : LO.Modal.Formula α) :
(p).degree = p.degree
@[simp]
theorem LO.Modal.Formula.degree_imp {α : Type u} (p : LO.Modal.Formula α) (q : LO.Modal.Formula α) :
(p q).degree = max p.degree q.degree
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
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 pC qC (p q)) (hbox : (p : LO.Modal.Formula α) → C pC (p)) (p : LO.Modal.Formula α) :
C p
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • LO.Modal.Formula.instDecidableEq = LO.Modal.Formula.hasDecEq
Equations
  • x.isBox = match x with | a.box => true | x => false
@[reducible, inline]
abbrev LO.Modal.Formulae (α : Type u_1) :
Type u_1
Equations
@[reducible, inline]
abbrev LO.Modal.Theory (α : Type u_1) :
Type u_1
Equations
Instances For
Equations
  • LO.Modal.instCollectionFormulaTheory = inferInstance
@[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
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 α} :
p q Xp X q X
theorem LO.Modal.Formulae.SubformulaClosed.box_closed {α : Type u_1} {X : LO.Modal.Formulae α} [self : X.SubformulaClosed] {p : LO.Modal.Formula α} :
p Xp X
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) :
p X 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
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 α} :
p q Tp T q T
theorem LO.Modal.Theory.SubformulaClosed.box_closed {α : Type u_1} {T : LO.Modal.Theory α} [self : T.SubformulaClosed] {p : LO.Modal.Formula α} :
p Tp T
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) :
p T 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.
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 pC (p)) (himp : (p q : LO.Modal.Formula α) → q C pC qC (p q)) (hbox : (p : LO.Modal.Formula α) → C pC (p)) (p : LO.Modal.Formula α) :
C p
Equations
Equations
@[simp]
theorem LO.Modal.Formula.negated_def {α : Type u_1} {p : LO.Modal.Formula α} :
(p).negated = true
@[simp]
theorem LO.Modal.Formula.negated_imp {α : Type u_1} {p : LO.Modal.Formula α} {q : LO.Modal.Formula α} :
(p q).negated = true q =
theorem LO.Modal.Formula.negated_iff {α : Type u_1} [DecidableEq α] {p : LO.Modal.Formula α} :
p.negated = true ∃ (q : LO.Modal.Formula α), p = q
theorem LO.Modal.Formula.not_negated_iff {α : Type u_1} [DecidableEq α] {p : LO.Modal.Formula α} :
¬p.negated = true ∀ (q : LO.Modal.Formula α), p q
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 pC (p)) (himp : (p q : LO.Modal.Formula α) → ¬(p q).negated = trueC pC qC (p q)) (hbox : (p : LO.Modal.Formula α) → C pC (p)) (p : LO.Modal.Formula α) :
C p
Equations
Equations
@[irreducible]
Equations
Equations
  • LO.Modal.Formula.instEncodable = { encode := LO.Modal.Formula.toNat, decode := LO.Modal.Formula.ofNat, encodek := }