Exact Fourier circuits: finite separation #
Adapted from OpenAI's formalization at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a.
Source: https://github.com/openai/math/blob/adc7f1241b42e322a6451854ab7e4b4c146bf78a/lean/OAI/Computability/FourierCircuit/FiniteSeparation.lean
Imports, namespaces, module visibility, documentation, and formatting are adapted for complexitylib. The source theorem statements and mathematical arguments are retained.
Enumerate an invertible matrix's finite coordinates to bundle its width and entries.
Equations
- Complexity.ExactFourier.Packing.GMatrix.of M hM = { width := Fintype.card α, mat := (Matrix.reindex (Fintype.equivFin α) (Fintype.equivFin α)) M, unit := ⋯ }
Instances For
Evaluate a bundled price on an invertible matrix, assigning zero to singular matrices.
Equations
- Complexity.ExactFourier.Packing.rawValue p M = if h : IsUnit M then p (Complexity.ExactFourier.Packing.GMatrix.of M h) else 0
Instances For
Nonnegative matrix prices satisfying the pair-comparison inequalities.
The price assigned to each finite square complex matrix.
- comparison {τ : Type} [Fintype τ] [DecidableEq τ] {D : τ → Type} [(t : τ) → Fintype (D t)] [(t : τ) → DecidableEq (D t)] {A : (t : τ) → Matrix (D t) (D t) ℂ} : (∀ (t : τ), IsUnit (A t)) → ∀ (c : PairComparison), pairPrice (fun (t : τ) => self.value (A t)) c.pair ≤ Word.weight (fun (t : τ) => self.value (A t)) c.word
Instances For
Run two words on disjoint coordinate blocks by embedding and concatenating them.