Exact Fourier circuits: sparse shear #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/SparseShear.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
A rectangular shear costs at most one per nonzero matrix entry.
The new generator rows introduced by one additional triangular stage.
Equations
- Complexity.ExactFourier.Triangular.freshRows T i j = 1 i j.2.1 * T j.1 j.2.2
Instances For
Stack the lifted old rows above the fresh rows of the next stage.
Equations
Instances For
Ordinary matrix row spaces are unchanged by an invertible row multiplier.
Number of supported scalar positions.
Equations
- Complexity.ExactFourier.Triangular.nnz v = {i : δ | v i ≠ 0}.card
Instances For
Recursive axis/fiber indexing; no extra workspace is introduced.
Equations
Instances For
The recursively accumulated call-coordinate type in the triangular tensor construction.
Equations
Instances For
Equations
- Complexity.ExactFourier.Triangular.bottomFintype β 0 = { elems := {PUnit.unit}, complete := ⋯ }
- Complexity.ExactFourier.Triangular.bottomFintype β k.succ = { elems := Finset.univ ×ˢ Finset.univ, complete := ⋯ }
Equations
- Complexity.ExactFourier.Triangular.callsFintype β 0 = { elems := ∅, complete := ⋯ }
- Complexity.ExactFourier.Triangular.callsFintype β k.succ = { elems := Finset.univ.disjSum Finset.univ, complete := ⋯ }
Equations
Equations
- One or more equations did not get rendered due to their size.
- Complexity.ExactFourier.Triangular.callsDecidableEq β 0 = instDecidableEqPEmpty
Tensor powers indexed by the recursively defined bottom-coordinate type.
Equations
- Complexity.ExactFourier.Triangular.tensorPower D 0 = 1
- Complexity.ExactFourier.Triangular.tensorPower D k.succ = Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (Complexity.ExactFourier.Triangular.tensorPower D k) D
Instances For
The accumulated off-diagonal contribution of the triangular tensor construction.
Equations
- One or more equations did not get rendered due to their size.
- Complexity.ExactFourier.Triangular.contamination C D 0 = 0
Instances For
Recursive generator rows after normalizing the coupling by the state inverse.
Equations
Instances For
The recursive block change of basis on the accumulated call coordinates.
Equations
- Complexity.ExactFourier.Triangular.rowBasis D 0 = 1
- Complexity.ExactFourier.Triangular.rowBasis D k.succ = Matrix.fromBlocks (Matrix.kroneckerMap (fun (x1 x2 : ℂ) => x1 * x2) (Complexity.ExactFourier.Triangular.rowBasis D k) D) 0 0 1