Documentation

Complexitylib.Circuits.DepthThree.LowerBound.Internal.LanguageBitHornerLoop

Unrestricted depth-three lower bound: language bit horner loop #

Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a. Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/LanguageBitHornerLoop.lean

Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.

One multiply-and-add step of Horner evaluation.

Equations
Instances For
    theorem Complexity.DepthThreeLowerBound.hornerStep_length (r : ℕ) (p h b a : List Bool) (hb : b.length = r) :
    (hornerStep r p h b a).length = r

    Continue Horner evaluation from an initial accumulator.

    Equations
    Instances For
      theorem Complexity.DepthThreeLowerBound.hornerFrom_cons (r : ℕ) (p h b : List Bool) (bs : List (List Bool)) (a : List Bool) :
      hornerFrom r p h (b :: bs) a = hornerStep r p h b (hornerFrom r p h bs a)
      theorem Complexity.DepthThreeLowerBound.hornerFrom_append (r : ℕ) (p h : List Bool) (bs cs : List (List Bool)) (a : List Bool) :
      hornerFrom r p h (bs ++ cs) a = hornerFrom r p h bs (hornerFrom r p h cs a)
      theorem Complexity.DepthThreeLowerBound.hornerFrom_append_singleton (r : ℕ) (p h : List Bool) (bs : List (List Bool)) (b a : List Bool) :
      hornerFrom r p h (bs ++ [b]) a = hornerFrom r p h bs (hornerStep r p h b a)
      theorem Complexity.DepthThreeLowerBound.hornerFrom_length (r : ℕ) (p h : List Bool) (bs : List (List Bool)) (a : List Bool) (ha : a.length = r) (hbs : ∀ b ∈ bs, b.length = r) :
      (hornerFrom r p h bs a).length = r
      theorem Complexity.DepthThreeLowerBound.block_flatten_length {α : Type uDepth1} (r : ℕ) (bs : List (List α)) (hbs : ∀ b ∈ bs, b.length = r) :