Exact Fourier circuits: pi tensor #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/PiTensor.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
The tensor product of a dependent finite family of square matrices.
Equations
- Complexity.ExactFourier.PiTensor.matrix A x y = ∏ i : ι, A i (x i) (y i)
Instances For
The dependent tensor product as a multiplicative homomorphism.
Equations
- Complexity.ExactFourier.PiTensor.hom = { toFun := Complexity.ExactFourier.PiTensor.matrix, map_one' := ⋯, map_mul' := ⋯ }
Instances For
Separate one coordinate axis from all the remaining dependent coordinates.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Apply independent copies of a word along one axis of a product space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Compose the axis words to realize their dependent tensor product.
Equations
- Complexity.ExactFourier.Packing.Word.tensor W = (List.map (fun (i : ι) => Complexity.ExactFourier.Packing.Word.axis i (W i)) Finset.univ.toList).flatten
Instances For
Apply a word to the left coordinate of a product, fixing the right coordinate.
Equations
- W.leftTensor = Complexity.ExactFourier.Packing.Word.reindex ((Equiv.sigmaEquivProd β α).trans (Equiv.prodComm β α)) (Complexity.ExactFourier.Packing.Word.blockSum fun (x : β) => W)
Instances For
Apply a word to the right coordinate of a product, fixing the left coordinate.
Equations
- V.rightTensor = Complexity.ExactFourier.Packing.Word.reindex (Equiv.sigmaEquivProd α β) (Complexity.ExactFourier.Packing.Word.blockSum fun (x : α) => V)
Instances For
Realize the Kronecker product by concatenating the left-axis and right-axis words.
Equations
- W.kronecker V = W.leftTensor ++ V.rightTensor
Instances For
The two tensor axes choose block-copy labels independently, even for repeated species.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The direct sum of the specified number of copies of each species matrix.
Equations
- Complexity.ExactFourier.Packing.speciesInventory k B = Matrix.blockDiagonal' fun (s : σ) => Matrix.kronecker 1 (B s)
Instances For
The tensor-square inventory regrouped into ordered pairs of species.
Equations
- Complexity.ExactFourier.Packing.sectorMatrix k B = Matrix.blockDiagonal' fun (p : σ × σ) => Matrix.kronecker 1 ((B p.1).kronecker (B p.2))
Instances For
Transport dependent coordinates through a species-preserving equivalence of sites.
Equations
- Complexity.ExactFourier.Packing.colorEquiv u v e he = e.sigmaCongr fun (p : π) => Equiv.cast ⋯
Instances For
Equal multiplicities give an exact color-preserving matching of call blocks.
The active coordinate type of an optional call, empty when there is no call.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The called matrix, or the identity on the empty domain of an inactive slot.
Equations
Instances For
The embedding of a step's active call coordinates into its ambient space.
Equations
- (Complexity.ExactFourier.Packing.Step.mono M hm).activeTuple = { toFun := Empty.elim, inj' := ⋯ }
- (Complexity.ExactFourier.Packing.Step.call t e).activeTuple = e
Instances For
The monomial part of a step, equal to the identity for a species call.
Equations
Instances For
Forget the species witness and embed active call indices into all sites.
Equations
- Complexity.ExactFourier.Packing.callSite u = { toFun := fun (c : Complexity.ExactFourier.Packing.CallIndex u) => ↑c.snd, inj' := ⋯ }
Instances For
Place species-grouped active coordinates back at their original call sites.
Instances For
Identify active coordinates grouped by species with those grouped by call site.