Documentation

Foundation.Modal.Formula

inductive LO.Modal.Formula (α : Type u) :
Instances For
    @[reducible, inline]
    abbrev LO.Modal.Formula.neg {α : Type u_1} (φ : Formula α) :
    Equations
    Instances For
      @[reducible, inline]
      abbrev LO.Modal.Formula.verum {α : Type u_1} :
      Equations
      Instances For
        @[reducible, inline]
        abbrev LO.Modal.Formula.top {α : Type u_1} :
        Equations
        Instances For
          @[reducible, inline]
          abbrev LO.Modal.Formula.or {α : Type u_1} (φ ψ : Formula α) :
          Equations
          • φ.or ψ = φ.neg.imp ψ
          Instances For
            @[reducible, inline]
            abbrev LO.Modal.Formula.and {α : Type u_1} (φ ψ : Formula α) :
            Equations
            • φ.and ψ = (φ.imp ψ.neg).neg
            Instances For
              @[reducible, inline]
              abbrev LO.Modal.Formula.dia {α : Type u_1} (φ : Formula α) :
              Equations
              • φ.dia = φ.neg.box.neg
              Instances For
                Equations
                Instances For
                  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
                  Instances For

                    Max numbers of

                    Equations
                    Instances For
                      @[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
                      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
                        Instances For
                          def LO.Modal.Formula.hasDecEq {α : Type u} [DecidableEq α] (φ ψ : Formula α) :
                          Decidable (φ = ψ)
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            Instances For
                              @[reducible, inline]
                              abbrev LO.Modal.Formulae (α : Type u_1) :
                              Type u_1
                              Equations
                              Instances For
                                @[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
                                        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
                                          Instances For
                                            def LO.Modal.Formula.negated {α : Type u_1} :
                                            Formula αBool
                                            Equations
                                            Instances For
                                              @[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
                                              Instances For
                                                def LO.Modal.Formula.toNat {α : Type u_1} [Encodable α] :
                                                Formula α
                                                Equations
                                                Instances For
                                                  @[irreducible]
                                                  def LO.Modal.Formula.ofNat {α : Type u_1} [Encodable α] :
                                                  Option (Formula α)
                                                  Equations
                                                  Instances For
                                                    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 σ φ
                                                    class LO.Modal.Theory.SubstClosed {α : Type u_1} (T : Theory α) :
                                                    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) :
                                                        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