Documentation

Logic.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 ++ "}"
    • p.neg.toStr = "\\lnot " ++ p.toStr
    • (p.and q).toStr = "\\left(" ++ p.toStr ++ " \\land " ++ q.toStr ++ "\\right)"
    • (p.or q).toStr = "\\left(" ++ p.toStr ++ " \\lor " ++ q.toStr ++ "\\right)"
    • (p.imp q).toStr = "\\left(" ++ p.toStr ++ " \\rightarrow " ++ q.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} (p₁ : LO.IntProp.Formula α) (q₁ : LO.IntProp.Formula α) (p₂ : LO.IntProp.Formula α) (q₂ : LO.IntProp.Formula α) :
      p₁ p₂ = q₁ q₂ p₁ = q₁ p₂ = q₂
      @[simp]
      theorem LO.IntProp.Formula.or_inj {α : Type u_1} (p₁ : LO.IntProp.Formula α) (q₁ : LO.IntProp.Formula α) (p₂ : LO.IntProp.Formula α) (q₂ : LO.IntProp.Formula α) :
      p₁ p₂ = q₁ q₂ p₁ = q₁ p₂ = q₂
      @[simp]
      theorem LO.IntProp.Formula.imp_inj {α : Type u_1} (p₁ : LO.IntProp.Formula α) (q₁ : LO.IntProp.Formula α) (p₂ : LO.IntProp.Formula α) (q₂ : LO.IntProp.Formula α) :
      p₁ p₂ = q₁ q₂ p₁ = q₁ p₂ = q₂
      @[simp]
      theorem LO.IntProp.Formula.neg_inj {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
      p = q p = q
      theorem LO.IntProp.Formula.iff_def {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
      p q = (p q) (q p)
      Equations
      • (LO.IntProp.Formula.atom a).complexity = 0
      • LO.IntProp.Formula.verum.complexity = 0
      • LO.IntProp.Formula.falsum.complexity = 0
      • p.neg.complexity = p.complexity + 1
      • (p.imp q).complexity = max p.complexity q.complexity + 1
      • (p.and q).complexity = max p.complexity q.complexity + 1
      • (p.or q).complexity = max p.complexity q.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} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
        (p q).complexity = max p.complexity q.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_imp' {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
        (p.imp q).complexity = max p.complexity q.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_and {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
        (p q).complexity = max p.complexity q.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_and' {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
        (p.and q).complexity = max p.complexity q.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_or {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
        (p q).complexity = max p.complexity q.complexity + 1
        @[simp]
        theorem LO.IntProp.Formula.complexity_or' {α : Type u_1} (p : LO.IntProp.Formula α) (q : LO.IntProp.Formula α) :
        (p.or q).complexity = max p.complexity q.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 : (p : LO.IntProp.Formula α) → C (p)) (himp : (p q : LO.IntProp.Formula α) → C (p q)) (hand : (p q : LO.IntProp.Formula α) → C (p q)) (hor : (p q : LO.IntProp.Formula α) → C (p q)) (p : LO.IntProp.Formula α) :
        C p
        Equations
        • One or more equations did not get rendered due to their size.
        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 : (p : LO.IntProp.Formula α) → C pC (p)) (himp : (p q : LO.IntProp.Formula α) → C pC qC (p q)) (hand : (p q : LO.IntProp.Formula α) → C pC qC (p q)) (hor : (p q : LO.IntProp.Formula α) → C pC qC (p q)) (p : LO.IntProp.Formula α) :
          C p
          Equations
          Instances For
            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