Morphisms of lattices
Morphisms of lattices and their block matrices.
Morphisms
A morphism \(\varphi \colon S \to T\) of lattices is a \(\mathbb{Z}\)-linear map with \(b_T(\varphi x, \varphi y) = b_S(x, y)\) for all \(x, y \in S\).
When \(S\) is nondegenerate, a morphism \(\varphi \colon S \to T\) is injective; it is then an isometric embedding.
\(\varphi x = 0\) gives \(b_S(x, y) = b_T(0, \varphi y) = 0\) for all \(y\), so \(x\) is in the radical of \(S\), which is zero.
Matrices
The matrix \(M\) of \(\varphi\) is in the chosen bases of \(S\) and \(T\), with the orthogonal summands in the order in which the name of the lattice writes them. It has \(\operatorname{rank} T\) rows and \(\operatorname{rank} S\) columns: column \(j\) lists the coordinates of \(\varphi(e_j)\) in the chosen basis of \(T\).
\(M^{\top} G_T M = G_S\) for the
matrices \(G_S = (b_S(e_i, e_j))\) and
\(G_T = (b_T(e_i, e_j))\), so \(\varphi\) preserves the forms. A SageMath
morphism phi gives phi.matrix().transpose(),
because SageMath lists the images in rows.
Block matrices
Lines between the rows and between the columns subdivide the matrix
into blocks, as M.subdivisions() of SageMath states them: a
line \(k\) lies between rows \(k\) and \(k +
1\), or between columns \(k\)
and \(k + 1\). The basis vectors of
\(T\) between two consecutive row lines
span an orthogonal summand
of \(T\), and the basis vectors of
\(S\) between two consecutive column
lines span an orthogonal summand of \(S\).