Documentation

Foundation.Modal.Formula

@[reducible, inline]
abbrev LO.Modal.Formula.neg {α : Type u_1} (φ : Formula α) :
Equations
@[reducible, inline]
abbrev LO.Modal.Formula.or {α : Type u_1} (φ ψ : Formula α) :
Equations
  • φ.or ψ = φ.neg.imp ψ
@[reducible, inline]
abbrev LO.Modal.Formula.and {α : Type u_1} (φ ψ : Formula α) :
Equations
  • φ.and ψ = (φ.imp ψ.neg).neg
@[reducible, inline]
abbrev LO.Modal.Formula.dia {α : Type u_1} (φ : Formula α) :
Equations
  • φ.dia = φ.neg.box.neg
Equations
instance LO.Modal.Formula.instRepr {α : Type u} [ToString α] :
Equations
@[simp]
theorem LO.Modal.Formula.or_eq {α : Type u} (φ ψ : Formula α) :
φ.or ψ = φ ψ
theorem LO.Modal.Formula.and_eq {α : Type u} (φ ψ : Formula α) :
φ.and ψ = φ ψ
theorem LO.Modal.Formula.imp_eq {α : Type u} (φ ψ : Formula α) :
φ.imp ψ = φ ψ
theorem LO.Modal.Formula.neg_eq {α : Type u} (φ : Formula α) :
φ.neg = φ
theorem LO.Modal.Formula.box_eq {α : Type u} (φ : Formula α) :
φ.box = φ
theorem LO.Modal.Formula.dia_eq {α : Type u} (φ : Formula α) :
φ.dia = φ
theorem LO.Modal.Formula.iff_eq {α : Type u} (φ ψ : Formula α) :
φ ψ = (φ ψ) (ψ φ)
@[simp]
theorem LO.Modal.Formula.and_inj {α : Type u} (φ₁ ψ₁ φ₂ ψ₂ : Formula α) :
φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
@[simp]
theorem LO.Modal.Formula.or_inj {α : Type u} (φ₁ ψ₁ φ₂ ψ₂ : Formula α) :
φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
@[simp]
theorem LO.Modal.Formula.imp_inj {α : Type u} (φ₁ ψ₁ φ₂ ψ₂ : Formula α) :
φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
@[simp]
theorem LO.Modal.Formula.neg_inj {α : Type u} (φ ψ : Formula α) :
φ = ψ φ = ψ

Formula complexity

Equations

Max numbers of

Equations
@[simp]
theorem LO.Modal.Formula.degree_neg {α : Type u} (φ : Formula α) :
(φ).degree = φ.degree
@[simp]
theorem LO.Modal.Formula.degree_imp {α : Type u} (φ ψ : Formula α) :
(φ ψ).degree = φ.degree ψ.degree
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
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
def LO.Modal.Formula.hasDecEq {α : Type u} [DecidableEq α] (φ ψ : Formula α) :
Decidable (φ = ψ)
Equations
  • One or more equations did not get rendered due to their size.
Equations
@[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
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) :
ψ φ.subformulae χ φ.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
Instances
instance LO.Modal.SubformulaClosed.instSubformulaClosedSubformulae {α : Type u_1} [DecidableEq α] {φ : Formula α} :
φ.subformulae.SubformulaClosed
theorem LO.Modal.SubformulaClosed.mem_box {α : Type u_1} {φ : Formula α} {X : Formulae α} [closed : X.SubformulaClosed] (h : φ X) :
φ X
theorem LO.Modal.SubformulaClosed.mem_imp {α : Type u_1} {φ : Formula α} {X : Formulae α} [closed : X.SubformulaClosed] {ψ : Formula α} (h : φ ψ X) :
φ X ψ X
theorem LO.Modal.SubformulaClosed.mem_imp₁ {α : Type u_1} {φ : Formula α} {X : Formulae α} [closed : X.SubformulaClosed] {ψ : Formula α} (h : φ ψ X) :
φ X
theorem LO.Modal.SubformulaClosed.mem_imp₂ {α : Type u_1} {φ : Formula α} {X : Formulae α} [closed : X.SubformulaClosed] {ψ : Formula α} (h : φ ψ X) :
ψ X
Instances
theorem LO.Modal.Theory.SubformulaClosed.mem_box {α : Type u_1} {φ : Formula α} {T : Theory α} [T_closed : T.SubformulaClosed] (h : φ T) :
φ T
theorem LO.Modal.Theory.SubformulaClosed.mem_imp {α : Type u_1} {φ : Formula α} {T : Theory α} [T_closed : T.SubformulaClosed] {ψ : Formula α} (h : φ ψ T) :
φ T ψ T
theorem LO.Modal.Theory.SubformulaClosed.mem_imp₁ {α : Type u_1} {φ : Formula α} {T : Theory α} [T_closed : T.SubformulaClosed] {ψ : Formula α} (h : φ ψ T) :
φ T
theorem LO.Modal.Theory.SubformulaClosed.mem_imp₂ {α : Type u_1} {φ : Formula α} {T : Theory α} [T_closed : T.SubformulaClosed] {ψ : Formula α} (h : φ ψ T) :
ψ T
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
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
def LO.Modal.Formula.negated {α : Type u_1} :
Formula αBool
Equations
@[simp]
theorem LO.Modal.Formula.negated_def {α : Type u_1} {φ : Formula α} :
(φ).negated = true
@[simp]
theorem LO.Modal.Formula.negated_imp {α : Type u_1} {φ ψ : Formula α} :
(φ ψ).negated = true ψ =
theorem LO.Modal.Formula.negated_iff {α : Type u_1} {φ : Formula α} [DecidableEq α] :
φ.negated = true ∃ (ψ : Formula α), φ = ψ
theorem LO.Modal.Formula.not_negated_iff {α : Type u_1} {φ : Formula α} [DecidableEq α] :
¬φ.negated = true ∀ (ψ : Formula α), φ ψ
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 = trueC φC ψC (φ ψ)) (hbox : (φ : Formula α) → C φC (φ)) (φ : Formula α) :
C φ
Equations
def LO.Modal.Formula.toNat {α : Type u_1} [Encodable α] :
Formula α
Equations
@[irreducible]
def LO.Modal.Formula.ofNat {α : Type u_1} [Encodable α] :
Option (Formula α)
Equations
theorem LO.Modal.Formula.ofNat_toNat {α : Type u_1} [Encodable α] (φ : Formula α) :
ofNat φ.toNat = some φ
@[simp]
theorem LO.Modal.Formula.subst_atom {α : Type u_1} {σ : αFormula α} {a : α} :
subst σ (atom a) = σ a
@[simp]
theorem LO.Modal.Formula.subst_bot {α : Type u_1} {σ : αFormula α} :
@[simp]
theorem LO.Modal.Formula.subst_imp {α : Type u_1} {φ ψ : Formula α} {σ : αFormula α} :
subst σ (φ ψ) = subst σ φ subst σ ψ
@[simp]
theorem LO.Modal.Formula.subst_neg {α : Type u_1} {φ : Formula α} {σ : αFormula α} :
subst σ (φ) = subst σ φ
@[simp]
theorem LO.Modal.Formula.subst_and {α : Type u_1} {φ ψ : Formula α} {σ : αFormula α} :
subst σ (φ ψ) = subst σ φ subst σ ψ
@[simp]
theorem LO.Modal.Formula.subst_or {α : Type u_1} {φ ψ : Formula α} {σ : αFormula α} :
subst σ (φ ψ) = subst σ φ subst σ ψ
@[simp]
theorem LO.Modal.Formula.subst_iff {α : Type u_1} {φ ψ : Formula α} {σ : αFormula α} :
subst σ (φ ψ) = subst σ φ subst σ ψ
@[simp]
theorem LO.Modal.Formula.subst_box {α : Type u_1} {φ : Formula α} {σ : αFormula α} :
subst σ (φ) = subst σ φ
@[simp]
theorem LO.Modal.Formula.subst_dia {α : Type u_1} {φ : Formula α} {σ : αFormula α} :
subst σ (φ) = subst σ φ
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) :
theorem LO.Modal.Theory.SubstClosed.mem_bot {α : Type u_1} {T : Theory α} [T.SubstClosed] {σ : αFormula α} (h : T) :
theorem LO.Modal.Theory.SubstClosed.mem_imp {α : Type u_1} {T : Theory α} [T.SubstClosed] {φ ψ : Formula α} {σ : αFormula α} (h : φ ψ T) :
Formula.subst σ (φ ψ) T
theorem LO.Modal.Theory.SubstClosed.mem_neg {α : Type u_1} {T : Theory α} [T.SubstClosed] {φ : Formula α} {σ : αFormula α} (h : φ T) :
theorem LO.Modal.Theory.SubstClosed.mem_and {α : Type u_1} {T : Theory α} [T.SubstClosed] {φ ψ : Formula α} {σ : αFormula α} (h : φ ψ T) :
Formula.subst σ (φ ψ) T
theorem LO.Modal.Theory.SubstClosed.mem_or {α : Type u_1} {T : Theory α} [T.SubstClosed] {φ ψ : Formula α} {σ : αFormula α} (h : φ ψ T) :
Formula.subst σ (φ ψ) T
theorem LO.Modal.Theory.SubstClosed.mem_box {α : Type u_1} {T : Theory α} [T.SubstClosed] {φ : Formula α} {σ : αFormula α} (h : φ T) :
instance LO.Modal.Theory.SubstClosed.union {α : Type u_1} {T₁ T₂ : Theory α} [T₁_closed : T₁.SubstClosed] [T₂_closed : T₂.SubstClosed] :
(T₁ T₂).SubstClosed