OAI/LinearAlgebra/MatrixMultiplication/AuxiliarySeparation/Sector/Degeneration.lean
28 declarations, 0 contain sorry, 0 declared as axioms
The actual three-sector polynomial degeneration
The interval weights of SectorWeights act by diagonal local maps on the
coefficient tensor C(a, 3h+a-1). Shifting every third-leg weight by one makes
the local maps polynomial. Their restriction is exactly X * retained + X^2 * erased, so the existing polynomial-restriction degeneration interface
applies with leading order one and local degree bounds (0,1,1).
- abbrev
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndexline 26 - abbrev
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndexline 27 - def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.sourceline 30Source documentation
The source coefficient tensor, with its actual shared first-input space.
def source (a h : ℕ) : Tensor ℂ (Fin a) (YIndex a h) (ZIndex a h) := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.source_ne_zero_iffline 33 - def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retainedline 44Source documentation
The weight-zero part in the original coordinate spaces.
def retained (a h : ℕ) : Tensor ℂ (Fin a) (YIndex a h) (ZIndex a h) := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.erasedline 48Source documentation
The positive-weight part, all of whose supported terms have weight one.
def erased (a h : ℕ) : Tensor ℂ (Fin a) (YIndex a h) (ZIndex a h) := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.leftTensorline 52Source documentation
The left retained branch, still in the common ambient coordinate spaces.
def leftTensor (a h : ℕ) : Tensor ℂ (Fin a) (YIndex a h) (ZIndex a h) := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.middleTensorline 56Source documentation
The middle retained branch; its first leg is the actual shared first leg.
def middleTensor (a h : ℕ) : Tensor ℂ (Fin a) (YIndex a h) (ZIndex a h) := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.rightTensorline 60Source documentation
The right retained branch in the original coordinate spaces.
def rightTensor (a h : ℕ) : Tensor ℂ (Fin a) (YIndex a h) (ZIndex a h) := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained_eq_three_branchesline 65Source documentation
The retained tensor is exactly the sum of the three stated branches, with coefficient one on each and the original first-leg coordinates shared.
theorem retained_eq_three_branches (a h : ℕ) : retained a h = leftTensor a h + middleTensor a h + rightTensor a h := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.leftTensor, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.middleTensor, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.rightTensor
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.source_eq_retained_add_erasedline 91Source documentation
Every source term belongs either to the retained tensor or the erased one.
theorem source_eq_retained_add_erased (a h : ℕ) : source a h = retained a h + erased a h := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.source, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.erased
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.normalizedPolynomialline 100Source documentation
The normalized polynomial family appearing in the unshifted weights.
def normalizedPolynomial (a h : ℕ) : Tensor (Polynomial ℂ) (Fin a) (YIndex a h) (ZIndex a h) := …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.leftMapline 105Source documentation
The first local map fixes the common input basis.
def leftMap (a : ℕ) (output input : Fin a) : Polynomial ℂ := …
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.middleMapline 109Source documentation
The second local map assigns weight one to the middle interval.
def middleMap (a h : ℕ) (output input : YIndex a h) : Polynomial ℂ := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.rightMapline 114Source documentation
Shift the third-leg weights by one, giving weight zero to the middle interval and weight one to the two outer intervals.
def rightMap (a h : ℕ) (output input : ZIndex a h) : Polynomial ℂ := …
Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.polynomialline 118Source documentation
One simultaneous polynomial restriction of the whole source tensor.
def polynomial (a h : ℕ) : Tensor (Polynomial ℂ) (Fin a) (YIndex a h) (ZIndex a h) := …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.polynomial_applyline 123 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.polynomial_identityline 131Source documentation
The shifted polynomial restriction has precisely two possible degrees.
theorem polynomial_identity (a h : ℕ) (i : Fin a) (j : YIndex a h) (k : ZIndex a h) : polynomial a h i j k = X * C (retained a h i j k) + X ^ 2 * C (erased a h i j k) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.polynomial, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.erased
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.polynomial_eq_X_mul_normalizedline 144 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.polynomial_coeffline 150 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.leftMap_degreeline 160 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.middleMap_degreeline 164 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.rightMap_degreeline 169 - def
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.restrictionline 176Source documentation
The three-sector construction is an actual polynomial restriction degeneration in the existing tensor API, with leading order one.
def restriction (a h : ℕ) : Tensor.PolynomialRestrictionDegeneration (source a h) (retained a h) 1 0 1 1 where …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.source, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.restriction_basePolynomialline 195 - theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.normalizedPolynomial_evalline 199Source documentation
Evaluation of the normalized family has exactly the paper's form.
theorem normalizedPolynomial_eval (a h : ℕ) (t : ℂ) (i : Fin a) (j : YIndex a h) (k : ZIndex a h) : (normalizedPolynomial a h i j k).eval t = retained a h i j k + t * erased a h i j k := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.YIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.ZIndex, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.normalizedPolynomial, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.erased
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.normalizedPolynomial_eval_restrictionline 208Source documentation
At nonzero parameters, the unshifted normalized polynomial is still an ordinary restriction: divide the first local map by the parameter.
theorem normalizedPolynomial_eval_restriction (a h : ℕ) (t : ℂ) (ht : t ≠ 0) : (fun i j k => (normalizedPolynomial a h i j k).eval t) = Tensor.restrict (fun output input => if input = output then t⁻¹ else 0) (fun output input => (middleMap a h output input).eval t) (fun output input => (rightMap a h output input).eval t) (source a h) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.normalizedPolynomial, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.middleMap, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.rightMap, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.source
- theorem
OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained_power_rankAtMostline 233Source documentation
Existing interpolation gives a rank bound with only linear overhead after tensor powering.
theorem retained_power_rankAtMost (a h r n : ℕ) (hsource : Tensor.RankAtMost (source a h) r) : Tensor.RankAtMost (Tensor.power (retained a h) n) ((2 * n + 1) * r ^ n) := by …Mentions: OAI.MatrixMultiplication.AuxiliarySeparation.Sector.source, OAI.MatrixMultiplication.AuxiliarySeparation.Sector.retained