Unrestricted depth-three lower bound: language #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/DepthThree/Language.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical proofs are retained.
Pack the hashed data as a polynomial over the two-element field.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pack one parsed coefficient block as a binary polynomial.
Equations
Instances For
The monic modulus polynomial specified by the parsed input.
Instances For
Evaluate the parsed coefficient polynomial at the hash polynomial.
Equations
- q.evaluationPolynomial = ∑ j : Fin q.coefficientCount, q.coefficientPolynomial j * q.hashPolynomial ^ ↑j
Instances For
Reduce the evaluation polynomial modulo the parsed monic modulus.
Equations
Instances For
Accept when the constant coefficient of the evaluation remainder is zero.
Instances For
The explicit language: parse the input and test the constant coefficient of its remainder.
Equations
- Complexity.DepthThreeLowerBound.language w = match Complexity.DepthThreeLowerBound.parseInput w with | none => false | some q => q.evaluate