Exact Fourier circuits: tensor tools #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/TensorTools.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
Execute two cells with shared state and separate data blocks, retaining the final state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Distribute a tensor lift across the triangular data and state blocks.
Equations
Instances For
Lift the previous off-diagonal contribution with an identity on the new tensor factor.
Instances For
Combine the old lifted contribution with the new coupling contribution.
Equations
Instances For
Merge the old and new call coordinates into one product block.
Equations
- Complexity.ExactFourier.Triangular.mergeEquiv = (Equiv.sumProdDistrib (σ × β) κ α).symm.sumCongr (Equiv.refl (κ × β))
Instances For
A chosen linear right inverse splits a surjection with its kernel.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Two surjections from the same finite-dimensional domain differ by an invertible change of domain. This is the block-copy coordinate change V.
Equality of row spaces, not an assumption of full row rank, suffices.
The row-space equivalence as an actual invertible left multiplier.
Select a sparse spanning-family basis and perform the invertible compression on the whole row-block index. At most dim(β → K) rows remain.