Exact Fourier circuits: monomial tools #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/MonomialTools.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
A direct sum of signed monomials, indexed in (internal,block) order.
The permutation matrix sending column j to row e j.
Instances For
Exact positive pattern: k forward calls, interleaved with arbitrary monomials.
- zero {α : Type} [Fintype α] [DecidableEq α] {A : Matrix α α ℂ} (M : Matrix α α ℂ) (hM : MonomialMatrix M) : Pattern A 0 M
- succ {α : Type} [Fintype α] [DecidableEq α] {A : Matrix α α ℂ} {k : ℕ} {H : Matrix α α ℂ} (hH : Pattern A k H) (M : Matrix α α ℂ) (hM : MonomialMatrix M) : Pattern A (k + 1) (H * A * M)
Instances For
Every nonmonomial invertible matrix generates all invertible matrices at one bounded positive length.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Negate one selected coordinate and leave every other coordinate unchanged.
Equations
- Complexity.ExactFourier.PositiveGeneration.changeSign i = Matrix.diagonal fun (j : α) => if j = i then -1 else 1
Instances For
Double one selected coordinate and leave every other coordinate unchanged.
Equations
- Complexity.ExactFourier.PositiveGeneration.doubleCoord i = Matrix.diagonal fun (j : α) => if j = i then 2 else 1
Instances For
Subtract a sign-conjugate to isolate the selected row and column off the diagonal.