Documentation

LeanPool.PointwiseComposition.Foundation.FirstOrder.Arithmetic.Exponential.Pow2

Supporting results for pointwise provable equality.

On $\mathrm{Pow2}(x)$ and $\mathrm{BitLen}(x, y)$ #

$\mathrm{Pow2}(n)$ is a property that holds iff $n = 2^i$ for some $i$.

The Pow2 construction in FFL.FirstOrder.Arithmetic.

Equations
Instances For

    The pow2Def construction in FFL.FirstOrder.Arithmetic.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem PointwiseComposition.FFL.FirstOrder.Arithmetic.Pow2.dvd {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝐈𝐎𝐩𝐞𝐧] {a : V} (h : Pow2 a) {r : V} (hr : r ≤ a) :
      1 < r → r ∣ a → 2 ∣ r

      $\mathrm{LenBit} (2^i, a) \iff \text{$i$th-bit of $a$ is $1$}$.

      Equations
      Instances For

        The lenbit Def construction in FFL.FirstOrder.Arithmetic.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem PointwiseComposition.FFL.FirstOrder.Arithmetic.Pow2.mul_add_lt_of_mul_lt_of_pos {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝐈Σ₀] {a b p q : V} (hp : Pow2 p) (hq : Pow2 q) (h : a * p < q) (hb : b < p) (hbq : b < q) :
          a * p + b < q
          theorem PointwiseComposition.FFL.FirstOrder.Arithmetic.lenbit_iff_add_mul {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝐈Σ₀] {i a : V} (hi : Pow2 i) :
          LenBit i a ↔ ∃ (k : V), ∃ r < i, a = k * (2 * i) + i + r
          theorem PointwiseComposition.FFL.FirstOrder.Arithmetic.not_lenbit_iff_add_mul {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝐈Σ₀] {i a : V} (hi : Pow2 i) :
          ¬LenBit i a ↔ ∃ (k : V), ∃ r < i, a = k * (2 * i) + r
          theorem PointwiseComposition.FFL.FirstOrder.Arithmetic.lenbit_mul_add {V : Type u_1} [ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝐈Σ₀] {i j a r : V} (pi : Pow2 i) (pj : Pow2 j) (hr : r < j) :
          LenBit (i * j) (a * j + r) ↔ LenBit i a