Documentation

LeanPool.Incompleteness.Arithmetization.ISigmaZero.Exponential.Log

Log #

theorem LO.Arith.log_exists_unique_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y : V} (hy : 0 < y) :
∃! x : V, x < y y'y, Exponential x y' y < 2 * y'
theorem LO.Arith.log_exists_unique {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (y : V) :
∃! x : V, (y = 0x = 0) (0 < yx < y y'y, Exponential x y' y < 2 * y')
noncomputable def LO.Arith.log {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a : V) :
V

Imported declaration from the Incompleteness formalization.

Equations
Instances For
    @[simp]
    theorem LO.Arith.log_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] :
    log 0 = 0
    theorem LO.Arith.log_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y : V} (pos : 0 < y) :
    y'y, Exponential (log y) y' y < 2 * y'
    theorem LO.Arith.log_lt_self_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y : V} (pos : 0 < y) :
    log y < y
    @[simp]
    theorem LO.Arith.log_le_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a : V) :
    log a a
    theorem LO.Arith.log_graph {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y : V} :
    x = log y (y = 0x = 0) (0 < yx < y y'y, Exponential x y' y < 2 * y')

    Imported declaration from the Incompleteness formalization.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem LO.Arith.log_eq_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y : V} (pos : 0 < y) {y' : V} (H : Exponential x y') (hy' : y' y) (hy : y < 2 * y') :
      log y = x
      @[simp]
      theorem LO.Arith.log_one {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] :
      log 1 = 0
      @[simp]
      theorem LO.Arith.log_two {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] :
      log 2 = 1
      theorem LO.Arith.log_two_mul_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y : V} (pos : 0 < y) :
      log (2 * y) = log y + 1
      theorem LO.Arith.log_two_mul_add_one_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y : V} (pos : 0 < y) :
      log (2 * y + 1) = log y + 1
      theorem LO.Arith.Exponential.log_eq_of_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y : V} (H : Exponential x y) :
      log y = x
      theorem LO.Arith.exponential_of_pow2 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {p : V} (pp : Pow2 p) :
      theorem LO.Arith.log_mul_pow2_add_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a p b : V} (pos : 0 < a) (pp : Pow2 p) (hb : b < p) :
      log (a * p + b) = log a + log p
      theorem LO.Arith.log_mul_pow2 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a p : V} (pos : 0 < a) (pp : Pow2 p) :
      log (a * p) = log a + log p
      theorem LO.Arith.log_monotone {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (h : a b) :
      log a log b
      noncomputable def LO.Arith.binaryLength {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a : V) :
      V

      Imported declaration from the Incompleteness formalization.

      Equations
      Instances For
        @[implicit_reducible]
        noncomputable def LO.Arith.instLength {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] :

        Imported declaration from the Incompleteness formalization.

        Equations
        Instances For
          theorem LO.Arith.length_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a : V} (pos : 0 < a) :
          @[simp]
          theorem LO.Arith.length_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a : V) :
          theorem LO.Arith.length_graph {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {i a : V} :
          i = Length.length a (0 < aka, k = log a i = k + 1) (a = 0i = 0)

          Imported declaration from the Incompleteness formalization.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[simp]
            theorem LO.Arith.Exponential.length_eq {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y : V} (H : Exponential x y) :
            theorem LO.Arith.length_two_mul_of_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a : V} (pos : 0 < a) :
            theorem LO.Arith.length_mul_pow2_add_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a p b : V} (pos : 0 < a) (pp : Pow2 p) (hb : b < p) :
            theorem LO.Arith.length_mul_pow2 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a p : V} (pos : 0 < a) (pp : Pow2 p) :
            theorem LO.Arith.pos_of_lt_length {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (h : a < Length.length b) :
            0 < b
            @[simp]
            theorem LO.Arith.length_pos_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a : V} :
            @[simp]
            theorem LO.Arith.length_eq_zero_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a : V} :
            theorem LO.Arith.le_log_of_lt_length {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (h : a < Length.length b) :
            a log b
            theorem LO.Arith.exponential_log_le_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (pos : 0 < a) (h : Exponential (log a) b) :
            b a
            theorem LO.Arith.lt_exponential_log_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (h : Exponential (log a) b) :
            a < 2 * b
            theorem LO.Arith.lt_exp_len_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (h : Exponential (Length.length a) b) :
            a < b
            theorem LO.Arith.le_iff_le_log_of_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y a : V} (H : Exponential x y) (pos : 0 < a) :
            y a x log a
            theorem LO.Arith.le_iff_lt_length_of_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y a : V} (H : Exponential x y) :
            theorem LO.Arith.Exponential.lt_iff_log_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y a : V} (H : Exponential x y) (pos : 0 < a) :
            a < y log a < x
            theorem LO.Arith.Exponential.lt_iff_len_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y a : V} (H : Exponential x y) :
            theorem LO.Arith.Exponential.le_of_lt_length {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y a : V} (H : Exponential x y) :
            x < Length.length ay a
            theorem LO.Arith.Exponential.le_log {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x y : V} (H : Exponential x y) :
            x log y
            theorem LO.Arith.lt_exponential_length {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a b : V} (h : Exponential (Length.length a) b) :
            a < b
            theorem LO.Arith.bexp_exists_unique {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a x : V) :
            ∃! y : V, (x < Length.length aExponential x y) (Length.length a xy = 0)
            noncomputable def LO.Arith.bexp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a x : V) :
            V

            bexp a x = exp x if x < ‖a‖; = 0 o.w.

            Equations
            Instances For
              theorem LO.Arith.exp_bexp_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : x < Length.length a) :
              theorem LO.Arith.bexp_eq_zero_of_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : Length.length a x) :
              bexp a x = 0
              @[simp]
              theorem LO.Arith.bexp_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (x : V) :
              bexp 0 x = 0
              @[simp]
              theorem LO.Arith.exp_bexp_of_lt_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} :
              @[simp]
              theorem LO.Arith.bexp_le_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a x : V) :
              bexp a x a
              theorem LO.Arith.bexp_graph {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y a x : V} :
              y = bexp a x la, l = Length.length a (x < lExponential x y) (l xy = 0)

              Imported declaration from the Incompleteness formalization.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem LO.Arith.bexp_monotone_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i j : V} (hi : i < Length.length a) (hj : j < Length.length a) :
                bexp a i < bexp a j i < j
                theorem LO.Arith.bexp_monotone_le_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i j : V} (hi : i < Length.length a) (hj : j < Length.length a) :
                bexp a i bexp a j i j
                theorem LO.Arith.bexp_eq_of_lt_length {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {i a a' : V} (ha : i < Length.length a) (ha' : i < Length.length a') :
                bexp a i = bexp a' i
                @[simp]
                theorem LO.Arith.bexp_pow2 {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : x < Length.length a) :
                Pow2 (bexp a x)
                @[simp]
                theorem LO.Arith.lt_bexp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : x < Length.length a) :
                x < bexp a x
                @[simp]
                theorem LO.Arith.bexp_pos {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : x < Length.length a) :
                0 < bexp a x
                theorem LO.Arith.bexp_eq_of_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {y a x : V} (h : x < Length.length a) (H : Exponential x y) :
                bexp a x = y
                theorem LO.Arith.log_bexp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : x < Length.length a) :
                log (bexp a x) = x
                theorem LO.Arith.len_bexp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a x : V} (h : x < Length.length a) :
                Length.length (bexp a x) = x + 1
                @[simp]
                theorem LO.Arith.bexp_zero_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] :
                bexp 0 0 = 0
                @[simp]
                theorem LO.Arith.bexp_pos_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a : V} (h : 0 < a) :
                bexp a 0 = 1
                theorem LO.Arith.bexp_monotone {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a₁ x₁ a₂ x₂ : V} (h₁ : x₁ < Length.length a₁) (h₂ : x₂ < Length.length a₂) :
                bexp a₁ x₁ < bexp a₂ x₂ x₁ < x₂
                theorem LO.Arith.bexp_monotone_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a₁ x₁ a₂ x₂ : V} (h₁ : x₁ < Length.length a₁) (h₂ : x₂ < Length.length a₂) :
                bexp a₁ x₁ bexp a₂ x₂ x₁ x₂
                theorem LO.Arith.bexp_add {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {x₁ x₂ a : V} (h : x₁ + x₂ < Length.length a) :
                bexp a (x₁ + x₂) = bexp a x₁ * bexp a x₂
                theorem LO.Arith.bexp_two_mul {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a a' x : V} (hx : 2 * x < Length.length a) (hx' : x < Length.length a') :
                bexp a (2 * x) = bexp a' x ^ 2
                theorem LO.Arith.bexp_two_mul_succ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i : V} :
                bexp (2 * a) (i + 1) = 2 * bexp a i
                theorem LO.Arith.bexp_two_mul_add_one_succ {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i : V} :
                bexp (2 * a + 1) (i + 1) = 2 * bexp a i
                noncomputable def LO.Arith.fbit {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a i : V) :
                V

                Imported declaration from the Incompleteness formalization.

                Equations
                Instances For
                  @[simp]
                  theorem LO.Arith.fbit_lt_two {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a i : V) :
                  fbit a i < 2
                  @[simp]
                  theorem LO.Arith.fbit_le_one {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a i : V) :
                  fbit a i 1
                  theorem LO.Arith.fbit_eq_one_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i : V} :
                  fbit a i = 1 LenBit (bexp a i) a
                  theorem LO.Arith.fbit_eq_zero_iff {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i : V} :
                  fbit a i = 0 ¬LenBit (bexp a i) a
                  theorem LO.Arith.fbit_eq_zero_of_le {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] {a i : V} (hi : Length.length a i) :
                  fbit a i = 0

                  Imported declaration from the Incompleteness formalization.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem LO.Arith.fbit_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (i : V) :
                    fbit 0 i = 0
                    @[simp]
                    theorem LO.Arith.fbit_mul_two_mul {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a i : V) :
                    fbit (2 * a) (i + 1) = fbit a i
                    @[simp]
                    theorem LO.Arith.fbit_mul_two_add_one_mul {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a i : V) :
                    fbit (2 * a + 1) (i + 1) = fbit a i
                    @[simp]
                    theorem LO.Arith.fbit_two_mul_zero_eq_zero {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a : V) :
                    fbit (2 * a) 0 = 0
                    @[simp]
                    theorem LO.Arith.fbit_two_mul_add_one_zero_eq_one {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg0] (a : V) :
                    fbit (2 * a + 1) 0 = 1
                    @[simp]
                    theorem LO.Arith.log_exponential {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] (a : V) :
                    log (exp a) = a
                    theorem LO.Arith.exp_log_le_self {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {a : V} (pos : 0 < a) :
                    exp log a a
                    theorem LO.Arith.lt_two_mul_exponential_log {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {a : V} (pos : 0 < a) :
                    a < 2 * exp log a
                    @[simp]
                    theorem LO.Arith.length_exponential {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] (a : V) :
                    theorem LO.Arith.exp_add {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] (a b : V) :
                    exp (a + b) = exp a * exp b
                    theorem LO.Arith.log_mul_exp_add_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {a b : V} (pos : 0 < a) (i : V) (hb : b < exp i) :
                    log (a * exp i + b) = log a + i
                    theorem LO.Arith.log_mul_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {a : V} (pos : 0 < a) (i : V) :
                    log (a * exp i) = log a + i
                    theorem LO.Arith.length_mul_exp_add_of_lt {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {a b : V} (pos : 0 < a) (i : V) (hb : b < exp i) :
                    theorem LO.Arith.length_mul_exp {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {a : V} (pos : 0 < a) (i : V) :
                    theorem LO.Arith.exp_le_iff_le_log {V : Type u_1} [ORingStruc V] [V ⊧ₘ* 𝐈Sg1] {i a : V} (pos : 0 < a) :
                    exp i a i log a