Finite type counts, hierarchy separation and tensor execution bounds.
@[reducible, inline]
abbrev
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.AuxiliaryGroup
(d Q : ℕ)
:
Finite product of cyclic groups containing the integer separation grid.
Equations
Instances For
def
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.gridToGroup
{d Q : ℕ}
(x : Grid d Q)
:
AuxiliaryGroup d Q
Embed an integer grid point into the finite ambient separation group.
Equations
Instances For
def
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.gridToReal
{d Q : ℕ}
(x : Grid d Q)
:
Embed an integer grid point into real coordinate space.
Equations
Instances For
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.squaredNorm_gridToReal
{d Q : ℕ}
(x : Grid d Q)
:
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.dot_gridToReal
{d Q : ℕ}
(x y : Grid d Q)
:
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.grid_group_collision_lift
{d Q : ℕ}
(t c u v : Grid d Q)
(h : gridToGroup u + (gridToGroup t - gridToGroup v) = gridToGroup c)
(i : Fin d)
:
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.grid_sphere_slice_collision
{d Q : ℕ}
(t c u v : Grid d Q)
(hsphere : gridSquaredNorm c = gridSquaredNorm t)
(hslice : gridDot t u = gridDot t v)
:
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.indexed_grid_collision
{S : Type u_1}
{U : Type u_2}
{d Q : ℕ}
(tag : S → Grid d Q)
(point : S → U → Grid d Q)
(htag : Function.Injective tag)
(hpoint : ∀ (s : S), Function.Injective (point s))
(hsphere : ∀ (s s' : S), gridSquaredNorm (tag s') = gridSquaredNorm (tag s))
(hslice : ∀ (s : S) (i j : U), gridDot (tag s) (point s i) = gridDot (tag s) (point s j))
(s s' : S)
(i j : U)
:
gridToGroup (point s i) + (gridToGroup (tag s) - gridToGroup (point s j)) = gridToGroup (tag s') ↔ s = s' ∧ i = j
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Foundation.Separation.card_auxiliaryGroup
(d Q : ℕ)
[NeZero (4 * Q)]
: