Projection onto the first r coordinates as a ℤ-linear map.
Equations
- HexBerlekampZassenhausMathlib.BHKS.projFirst r n = { toFun := fun (w : Fin (r + n) → ℤ) (i : Fin r) => w (Fin.castAdd n i), map_add' := ⋯, map_smul' := ⋯ }
Instances For
A retained prefix row, projected to its first block, is a generator of the executable projected integer row span.
Every executable projected row comes from a retained row of the traced LLL-reduced basis, and is exactly that row's first-coordinate block.
Projecting a vector of the retained prefix submodule to its first block lands in the executable projected integer row span.
Build CutProjectionHypotheses from any per-support short vector in the BHKS
row lattice.
The vector may include nonzero diagonal-period row coefficients. The prefix survivor-span lemma only needs lattice membership plus the tight cut-radius bound, and the final projection only needs the first block to be the support indicator.
intVectorToRat of the zero vector is the zero rational vector.
intVectorToRat commutes with pointwise addition.
intVectorToRat of an integer-scalar multiple is the rational-cast scalar
times the rational vector.
Membership in the integer span carries over to membership of the rational-cast vector in the rational span of the rational-cast generators.
The rational projected row is the pointwise rational cast of the integer
projected row. Both projectedRowsRatMatrix and projectedRowsIntMatrix read
the same underlying L.projectedRows array; the only difference is the
codomain.
The range of the rational projected rows is the image of the range of the
integer projected rows under intVectorToRat.