OAI/Computability/FourierCircuit/TensorTools.lean
26 declarations, 0 contain sorry, 0 declared as axioms
Exact finite tensor and disjoint-block constructions for the triangular monotonicity experiment in 05-corners:130–201.
- theorem
OAI.ExactFourier.TensorTools.unit_reindexline 15 - theorem
OAI.ExactFourier.TensorTools.unit_tensorline 19 - def
OAI.ExactFourier.TensorTools.middleEquivline 26 - theorem
OAI.ExactFourier.TensorTools.pad_middleline 32 - theorem
OAI.ExactFourier.TensorTools.pad_frontline 42 - theorem
OAI.ExactFourier.TensorTools.join_mulline 52 - theorem
OAI.ExactFourier.TensorTools.price_joinline 68 - abbrev
OAI.ExactFourier.CellJoin.joinline 102 - theorem
OAI.ExactFourier.CellJoin.join_eqline 110 - theorem
OAI.ExactFourier.CellJoin.unitline 142 - theorem
OAI.ExactFourier.CellJoin.priceline 148 - def
OAI.ExactFourier.Triangular.swapLastline 174 - def
OAI.ExactFourier.Triangular.liftEquivline 180 - def
OAI.ExactFourier.Triangular.oldEline 183 - theorem
OAI.ExactFourier.Triangular.lift_identityline 186 - theorem
OAI.ExactFourier.Triangular.new_identityline 199 - def
OAI.ExactFourier.Triangular.nextEline 209 - def
OAI.ExactFourier.Triangular.mergeEquivline 215 - theorem
OAI.ExactFourier.Triangular.merge_identityline 219 - theorem
OAI.ExactFourier.Triangular.next_priceline 238 - def
OAI.ExactFourier.RowCompression.splitEquivline 283Source documentation
A chosen linear right inverse splits a surjection with its kernel.
def splitEquiv (f : E →ₗ[K] F) (s : F →ₗ[K] E) (hs : f.comp s = LinearMap.id) : E ≃ₗ[K] F × LinearMap.ker f where … - theorem
OAI.ExactFourier.RowCompression.splitEquiv_fstline 313 - theorem
OAI.ExactFourier.RowCompression.surjective_equivline 318Source documentation
Two surjections from the same finite-dimensional domain differ by an invertible change of domain. This is the block-copy coordinate change V.
theorem surjective_equiv [FiniteDimensional K E] (f g : E →ₗ[K] F) (hf : Function.Surjective f) (hg : Function.Surjective g) : ∃ e : E ≃ₗ[K] E, ∀ x, f (e x) = g x := by … - theorem
OAI.ExactFourier.RowCompression.range_equivline 339Source documentation
Equality of row spaces, not an assumption of full row rank, suffices.
theorem range_equiv [FiniteDimensional K E] (f g : E →ₗ[K] F) (hfg : LinearMap.range f = LinearMap.range g) : ∃ e : E ≃ₗ[K] E, ∀ x, f (e x) = g x := by … - theorem
OAI.ExactFourier.RowCompression.matrix_row_equivline 358Source documentation
The row-space equivalence as an actual invertible left multiplier.
theorem matrix_row_equiv (R S : Matrix α β K) (hRS : Submodule.span K (Set.range R) = Submodule.span K (Set.range S)) : ∃ V : Matrix α α K, IsUnit V ∧ V * R = S := by … - theorem
OAI.ExactFourier.RowCompression.sparse_row_compressionline 383Source documentation
Select a sparse spanning-family basis and perform the invertible compression on the whole row-block index. At most dim(β → K) rows remain.
theorem sparse_row_compression {γ : Type*} [Fintype β] (R : Matrix α β K) (Q : γ → β → K) (hspan : Submodule.span K (Set.range R) = Submodule.span K (Set.range Q)) : ∃ V : Matrix α α K, IsUnit V ∧ ∃ I : Finset α, I.card ≤ Fintype.card β ∧ (∀ i, i ∉ I → (V*R) i = 0) ∧ (∀ i ∈ I, ∃ g, (V*R) i = Q g) := by …