Hi John, Thanks for the reply, but you have my problem "upside down" as I don't need to restrict from the ambient space to the subspace but rather to extend from the subspace to the ambient space.
For example, I could have: sage: V Free module of degree 4 and rank 3 over Integer Ring User basis matrix: [0 1 2 3] [2 3 1 4] [1 3 2 1] sage: mat=matrix([[1,2,3],[2,1,4],[3,3,7]]); mat.kernel() Free module of degree 3 and rank 1 over Integer Ring Echelon basis matrix: [ 1 1 -1] The problem that is V is isomorphic to Z^3, but it is represented as a subspace of Z^4, whereas the kernel is a subspace of Z^3. As I mentioned, sage: V.submodule_with_basis([V.linear_combination_of_basis(b.list()) for b in mat.kernel().basis()]) Free module of degree 4 and rank 1 over Integer Ring User basis matrix: [1 1 1 6] does give the kernel as a subspace of V. I was just wondering if there was a better way of doing this. Cheers, Andrew -- You received this message because you are subscribed to the Google Groups "sage-support" group. To post to this group, send email to sage-support@googlegroups.com. To unsubscribe from this group, send email to sage-support+unsubscr...@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support?hl=en.