Every row of a matrix belongs to its integer row lattice.
theorem
Hex.Matrix.memLattice_sub
{n m : Nat}
{B : Matrix Int n m}
{u v : Vector Int m}
(hu : B.memLattice u)
(hv : B.memLattice v)
:
B.memLattice (u - v)
Integer row lattices are closed under subtraction.
theorem
Hex.Matrix.memLattice_smul
{n m : Nat}
{B : Matrix Int n m}
{v : Vector Int m}
(a : Int)
(hv : B.memLattice v)
:
B.memLattice (a • v)
Integer row lattices are closed under integer scalar multiplication.
theorem
Hex.Matrix.memLattice_of_mul_eq
{n m n' : Nat}
{B : Matrix Int n m}
{B' : Matrix Int n' m}
{U : Matrix Int n' n}
{v : Vector Int m}
(h : U * B = B')
:
B'.memLattice v → B.memLattice v
If every row of B' is an integer row combination of rows of B, then
membership in the lattice generated by B' implies membership for B.