Basis of LinSols
in the odd case #
We give a basis of LinSols
in the odd case. This basis has the special property
that splits into two planes on which every point is a solution to the ACCs.
The inclusion of Fin n
into Fin ((n + 1) + n)
via the first n
.
This is then casted to Fin (2 * n + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddFst j = Fin.cast ⋯ (Fin.castAdd n (Fin.castAdd 1 j))
Instances For
The inclusion of Fin n
into Fin ((n + 1) + n)
via the second n
.
This is then casted to Fin (2 * n + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddSnd j = Fin.cast ⋯ (Fin.natAdd (n + 1) j)
Instances For
The element representing 1
in Fin ((n + 1) + n)
.
This is then casted to Fin (2 * n + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddMid = Fin.cast ⋯ (Fin.castAdd n (Fin.natAdd n 1))
Instances For
The inclusion of Fin n
into Fin (1 + n + n)
via the first n
.
This is then casted to Fin (2 * n + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddShiftFst j = Fin.cast ⋯ (Fin.castAdd n (Fin.natAdd 1 j))
Instances For
The inclusion of Fin n
into Fin (1 + n + n)
via the second n
.
This is then casted to Fin (2 * n + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddShiftSnd j = Fin.cast ⋯ (Fin.natAdd (1 + n) j)
Instances For
The inclusion of Fin n
into Fin (1 + n + 1 + n.succ)
via the first n
and casted
to Fin (2 * n.succ + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddShiftShiftFst j = Fin.cast ⋯ (Fin.castAdd n.succ (Fin.castAdd 1 (Fin.natAdd 1 j)))
Instances For
The element representing the second 1
in Fin (1 + n + 1 + n.succ)
casted
to 2 * n.succ + 1
.
Equations
- PureU1.VectorLikeOddPlane.oddShiftShiftMid = Fin.cast ⋯ (Fin.castAdd n.succ (Fin.natAdd (1 + n) 1))
Instances For
The inclusion of Fin n.succ
into Fin (1 + n + 1 + n.succ)
via the n.succ
and casted
to Fin (2 * n.succ + 1)
.
Equations
- PureU1.VectorLikeOddPlane.oddShiftShiftSnd j = Fin.cast ⋯ (Fin.natAdd (1 + n + 1) j)
Instances For
The first part of the basis as charge assignments.
Equations
Instances For
The second part of the basis as charge assignments.
Equations
Instances For
The first part of the basis as LinSols
.
Equations
- PureU1.VectorLikeOddPlane.basis j = { val := PureU1.VectorLikeOddPlane.basisAsCharges j, linearSol := ⋯ }
Instances For
The second part of the basis as LinSols
.
Equations
- PureU1.VectorLikeOddPlane.basis! j = { val := PureU1.VectorLikeOddPlane.basis!AsCharges j, linearSol := ⋯ }
Instances For
The whole basis as LinSols
.
Equations
Instances For
Swapping the elements oddShiftFst j and oddShiftSnd j is equivalent to adding a vector basis!AsCharges j.
A point in the span of the first part of the basis as a charge.
Equations
- PureU1.VectorLikeOddPlane.P f = ∑ i : Fin n, f i • PureU1.VectorLikeOddPlane.basisAsCharges i
Instances For
A point in the span of the second part of the basis as a charge.
Equations
- PureU1.VectorLikeOddPlane.P! f = ∑ i : Fin n, f i • PureU1.VectorLikeOddPlane.basis!AsCharges i
Instances For
A point in the span of the basis as a charge.
Equations
Instances For
A point in the span of the first part of the basis.
Equations
- PureU1.VectorLikeOddPlane.P' f = ∑ i : Fin n, f i • PureU1.VectorLikeOddPlane.basis i
Instances For
A point in the span of the second part of the basis.
Equations
- PureU1.VectorLikeOddPlane.P!' f = ∑ i : Fin n, f i • PureU1.VectorLikeOddPlane.basis! i
Instances For
A helper function for what follows.
Equations
- PureU1.VectorLikeOddPlane.join g f (Sum.inl i_2) = g i_2
- PureU1.VectorLikeOddPlane.join g f (Sum.inr i_2) = f i_2