Documentation

LeanPool.MatrixMultiplicationAllFields.LinearAlgebra.MatrixMultiplication.AuxiliarySeparation.Sector.Branches

Coordinate identifications of the three retained sectors #

Each outer branch is a zero extension of C(a,h), using the same first-leg coordinates. The middle branch is a zero extension after reversing the first coordinate and exchanging the second and third tensor legs.

Embed the middle second-leg interval, which carries the convolution output.

Equations
Instances For

    Embed the middle third-leg interval, which carries the second input.

    Equations
    Instances For

      Pulling back the left block gives ordinary convolution.

      Pulling back the translated right block also gives ordinary convolution.

      Exchange the two outer convolution legs while retaining the original input order in the displayed coefficient equation.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The middle branch is exactly convolution with its last two legs exchanged; the first-leg reversal occurs solely in this individual branch identification.

        theorem MatrixMultiplicationAllFields.MatrixMultiplication.AuxiliarySeparation.Sector.leftTensor_support {K : Type} [Field K] (a h : ℕ) (i : Fin a) (j : YIndex a h) (k : ZIndex a h) (hn : leftTensor K a h i j k ≠ 0) :
        (∃ (r : Fin h), leftY a h r = j) ∧ ∃ (s : Fin (a + h - 1)), leftZ a h s = k

        All nonzero left-branch coordinates lie in the displayed embeddings.

        theorem MatrixMultiplicationAllFields.MatrixMultiplication.AuxiliarySeparation.Sector.rightTensor_support {K : Type} [Field K] (a h : ℕ) (i : Fin a) (j : YIndex a h) (k : ZIndex a h) (hn : rightTensor K a h i j k ≠ 0) :
        (∃ (r : Fin h), rightY a h r = j) ∧ ∃ (s : Fin (a + h - 1)), rightZ a h s = k

        All nonzero right-branch coordinates lie in the translated embeddings.

        theorem MatrixMultiplicationAllFields.MatrixMultiplication.AuxiliarySeparation.Sector.middleTensor_support {K : Type} [Field K] (a h : ℕ) (i : Fin a) (j : YIndex a h) (k : ZIndex a h) (hn : middleTensor K a h i j k ≠ 0) :
        (∃ (u : Fin a), u.rev = i) ∧ (∃ (s : Fin (a + h - 1)), middleY a h s = j) ∧ ∃ (r : Fin h), middleZ a h r = k

        All nonzero middle-branch coordinates lie in the exchanged embeddings.

        theorem MatrixMultiplicationAllFields.MatrixMultiplication.AuxiliarySeparation.Sector.leftTensor_eq_extension {K : Type} [Field K] (a h : ℕ) :
        leftTensor K a h = Foundation.Tensor.restrict (fun (x i : Fin a) => if i = x then 1 else 0) (fun (y : YIndex a h) (r : Fin h) => if leftY a h r = y then 1 else 0) (fun (z : ZIndex a h) (s : Fin (a + h - 1)) => if leftZ a h s = z then 1 else 0) (convolution K a h)

        The left block is the zero extension of the ordinary convolution tensor.

        theorem MatrixMultiplicationAllFields.MatrixMultiplication.AuxiliarySeparation.Sector.rightTensor_eq_extension {K : Type} [Field K] (a h : ℕ) :
        rightTensor K a h = Foundation.Tensor.restrict (fun (x i : Fin a) => if i = x then 1 else 0) (fun (y : YIndex a h) (r : Fin h) => if rightY a h r = y then 1 else 0) (fun (z : ZIndex a h) (s : Fin (a + h - 1)) => if rightZ a h s = z then 1 else 0) (convolution K a h)

        The right block is the zero extension along the translated coordinates.

        theorem MatrixMultiplicationAllFields.MatrixMultiplication.AuxiliarySeparation.Sector.middleTensor_eq_extension {K : Type} [Field K] (a h : ℕ) :
        middleTensor K a h = Foundation.Tensor.restrict (fun (x i : Fin a) => if i.rev = x then 1 else 0) (fun (y : YIndex a h) (s : Fin (a + h - 1)) => if middleY a h s = y then 1 else 0) (fun (z : ZIndex a h) (r : Fin h) => if middleZ a h r = z then 1 else 0) (exchangedConvolution K a h)

        The middle block is the zero extension of the exchanged convolution, with one reversible change of basis on its first leg.

        Every character assigns the left branch the value of C(a,h).

        Translation of the outer coordinates preserves the right-branch value.

        The middle-branch value is the value of the exchanged convolution tensor.

        Exchanging two tensor legs preserves nonzeroness.

        The left retained branch is nonzero in every positive size.

        The translated right branch is nonzero in every positive size.

        The exchanged middle branch is nonzero in every positive size.