Documentation

Foundation.IntProp.Formula

inductive LO.IntProp.Formula (α : Type u) :
Instances For
    Equations
    • LO.IntProp.instDecidableEqFormula = LO.IntProp.decEqFormula✝
    Equations
    • LO.IntProp.Formula.instLogicalConnective = LO.LogicalConnective.mk
    Equations
    • LO.IntProp.Formula.verum.toStr = "\\top"
    • LO.IntProp.Formula.falsum.toStr = "\\bot"
    • (LO.IntProp.Formula.atom a).toStr = "{" ++ toString a ++ "}"
    • φ.neg.toStr = "\\lnot " ++ φ.toStr
    • (φ.and ψ).toStr = "\\left(" ++ φ.toStr ++ " \\land " ++ ψ.toStr ++ "\\right)"
    • (φ.or ψ).toStr = "\\left(" ++ φ.toStr ++ " \\lor " ++ ψ.toStr ++ "\\right)"
    • (φ.imp ψ).toStr = "\\left(" ++ φ.toStr ++ " \\rightarrow " ++ ψ.toStr ++ "\\right)"
    Instances For
      Equations
      Equations
      • LO.IntProp.Formula.instToString = { toString := LO.IntProp.Formula.toStr }
      @[simp]
      theorem LO.IntProp.Formula.and_inj {α : Type u_1} (φ₁ ψ₁ φ₂ ψ₂ : LO.IntProp.Formula α) :
      φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
      @[simp]
      theorem LO.IntProp.Formula.or_inj {α : Type u_1} (φ₁ ψ₁ φ₂ ψ₂ : LO.IntProp.Formula α) :
      φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
      @[simp]
      theorem LO.IntProp.Formula.imp_inj {α : Type u_1} (φ₁ ψ₁ φ₂ ψ₂ : LO.IntProp.Formula α) :
      φ₁ φ₂ = ψ₁ ψ₂ φ₁ = ψ₁ φ₂ = ψ₂
      @[simp]
      theorem LO.IntProp.Formula.neg_inj {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
      φ = ψ φ = ψ
      theorem LO.IntProp.Formula.iff_def {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
      φ ψ = (φ ψ) (ψ φ)
      Equations
      • (LO.IntProp.Formula.atom a).complexity = 0
      • LO.IntProp.Formula.verum.complexity = 0
      • LO.IntProp.Formula.falsum.complexity = 0
      • φ.neg.complexity = φ.complexity + 1
      • (φ.imp ψ).complexity = φ.complexity ψ.complexity + 1
      • (φ.and ψ).complexity = φ.complexity ψ.complexity + 1
      • (φ.or ψ).complexity = φ.complexity ψ.complexity + 1
      Instances For
        @[simp]
        theorem LO.IntProp.Formula.complexity_bot {α : Type u_1} :
        .complexity = 0
        @[simp]
        theorem LO.IntProp.Formula.complexity_top {α : Type u_1} :
        .complexity = 0
        @[simp]
        theorem LO.IntProp.Formula.complexity_atom {α : Type u_1} (a : α) :
        (LO.IntProp.Formula.atom a).complexity = 0
        @[simp]
        theorem LO.IntProp.Formula.complexity_imp {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
        (φ ψ).complexity = φ.complexity ψ.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_imp' {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
        (φ.imp ψ).complexity = φ.complexity ψ.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_and {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
        (φ ψ).complexity = φ.complexity ψ.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_and' {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
        (φ.and ψ).complexity = φ.complexity ψ.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_or {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
        (φ ψ).complexity = φ.complexity ψ.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_or' {α : Type u_1} (φ ψ : LO.IntProp.Formula α) :
        (φ.or ψ).complexity = φ.complexity ψ.complexity + 1
        def LO.IntProp.Formula.cases' {α : Type u_1} {C : LO.IntProp.Formula αSort w} (hfalsum : C ) (hverum : C ) (hatom : (a : α) → C (LO.IntProp.Formula.atom a)) (hneg : (φ : LO.IntProp.Formula α) → C (φ)) (himp : (φ ψ : LO.IntProp.Formula α) → C (φ ψ)) (hand : (φ ψ : LO.IntProp.Formula α) → C (φ ψ)) (hor : (φ ψ : LO.IntProp.Formula α) → C (φ ψ)) (φ : LO.IntProp.Formula α) :
        C φ
        Equations
        Instances For
          def LO.IntProp.Formula.rec' {α : Type u_1} {C : LO.IntProp.Formula αSort w} (hfalsum : C ) (hverum : C ) (hatom : (a : α) → C (LO.IntProp.Formula.atom a)) (hneg : (φ : LO.IntProp.Formula α) → C φC (φ)) (himp : (φ ψ : LO.IntProp.Formula α) → C φC ψC (φ ψ)) (hand : (φ ψ : LO.IntProp.Formula α) → C φC ψC (φ ψ)) (hor : (φ ψ : LO.IntProp.Formula α) → C φC ψC (φ ψ)) (φ : LO.IntProp.Formula α) :
          C φ
          Equations
          Instances For
            def LO.IntProp.Formula.hasDecEq {α : Type u_1} [DecidableEq α] (φ ψ : LO.IntProp.Formula α) :
            Decidable (φ = ψ)
            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              Equations
              • LO.IntProp.Formula.instDecidableEq = LO.IntProp.Formula.hasDecEq
              Equations
              Instances For
                @[irreducible]
                Equations
                Instances For
                  Equations
                  • LO.IntProp.Formula.instEncodable = { encode := LO.IntProp.Formula.toNat, decode := LO.IntProp.Formula.ofNat, encodek := }
                  @[reducible, inline]
                  abbrev LO.IntProp.Theory (α : Type u) :
                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev LO.IntProp.Context (α : Type u) :
                    Equations
                    Instances For