Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

subquotient of module

how can I take a quotient of a submodule? I was expecting the following to work:

sage: M = CombinatorialFreeModule(QQ, [1,2], prefix='x'); x = M.basis()
sage: A = M.submodule([x[2]])
sage: A.quotient_module(A)
Free module generated by {1} over Rational Field

Which is clearly taking the quotient over the ambient space of A and not the image

sage: A.quotient_module(A) == M.quotient_module(A)
True

Replacing A with A.lift.image() is the same.

subquotient of module

how can I take a quotient of a submodule? I was expecting the following to work:

sage: M = CombinatorialFreeModule(QQ, [1,2], prefix='x'); x = M.basis()
sage: A = M.submodule([x[2]])
sage: A.quotient_module(A)
Free module generated by {1} over Rational Field

Which is clearly taking the quotient over the ambient space of A and not the image

sage: A.quotient_module(A) == M.quotient_module(A)
True

Replacing A with A.lift.image() is the same.

EDIT: well, reading now in Modules.WithBasis.FiniteDimensional.ParentMethods.quotient_modules this is simply a call to QuotientModuleWithBasis(A,category) which will infer the parent of A.

As a side observation, I find it disturbing that there is not even a check that submodule is indeed a submodule of self in that call.