Unrestricted depth-three lower bound: algebra quotient #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/AlgebraQuotient.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
noncomputable def
Complexity.DepthThreeLowerBound.BinaryAlgebra.quotientRepresentative
{P : Polynomial F2}
(hP : P.Monic)
:
The canonical polynomial representative of a quotient-ring element.
Equations
Instances For
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.quotientRepresentative_mk
{P : Polynomial F2}
(hP : P.Monic)
(f : Polynomial F2)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.mk_quotientRepresentative
{P : Polynomial F2}
(hP : P.Monic)
(z : AdjoinRoot P)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.degree_quotientRepresentative_lt
{P : Polynomial F2}
(hP : P.Monic)
(z : AdjoinRoot P)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.quotientRepresentative_one
{P : Polynomial F2}
(hP : P.Monic)
(hdeg : 0 < P.natDegree)
:
@[reducible, inline]
The quotient by the monic polynomial specified by the input coefficients.
Equations
Instances For
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.pack_mod_inputPolynomial
{r : ℕ}
(p a : Fin r → F2)
:
Map coefficient bits into the polynomial quotient ring.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.coordinates_apply
{r : ℕ}
(p : Fin r → F2)
(z : InputQuotient p)
(i : Fin r)
:
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.coordinates_symm_apply
{r : ℕ}
(p a : Fin r → F2)
:
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.coordinates_encode
{r : ℕ}
(p a : Fin r → F2)
:
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.encode_coordinates
{r : ℕ}
(p : Fin r → F2)
(z : InputQuotient p)
:
@[instance_reducible]
noncomputable instance
Complexity.DepthThreeLowerBound.BinaryAlgebra.inputQuotientFintype
{r : ℕ}
(p : Fin r → F2)
:
Fintype (InputQuotient p)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.coordinates_mk
{r : ℕ}
(p : Fin r → F2)
(f : Polynomial F2)
(i : Fin r)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.coordinates_mul
{r : ℕ}
(p : Fin r → F2)
(x y : InputQuotient p)
(i : Fin r)
:
(coordinates p) (x * y) i = (pack ((coordinates p) x) * pack ((coordinates p) y) %ₘ inputPolynomial p).coeff ↑i
noncomputable def
Complexity.DepthThreeLowerBound.BinaryAlgebra.degreeZero
{P : Polynomial F2}
(hP : P.Monic)
:
Read the constant coefficient of the quotient representative.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.degreeZero_apply
{P : Polynomial F2}
(hP : P.Monic)
(z : AdjoinRoot P)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.degreeZero_mk
{P : Polynomial F2}
(hP : P.Monic)
(f : Polynomial F2)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.degreeZero_one
{P : Polynomial F2}
(hP : P.Monic)
(hdeg : 0 < P.natDegree)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.degreeZero_surjective
{P : Polynomial F2}
(hP : P.Monic)
(hdeg : 0 < P.natDegree)
:
theorem
Complexity.DepthThreeLowerBound.BinaryAlgebra.degreeZero_coordinates
{r : ℕ}
(p : Fin r → F2)
(hr : 0 < r)
(z : InputQuotient p)
: