corank(M::MODZ)::nonnegint
The corank of a Z-module is its minimal number of generators.
directsum(M1::MODZ, ...)::MODZ
The direct sum of the given modules.
Examples
> | M1 := modz(1, [2]); M2 := modz([3]); |
> | directsum(M1, M2); |
> | MODZ[directsum](); |
modz(r::nonnegint, t::list(posint))::MODZ modz(r::nonnegint)::MODZ
Creates an object of type MODZ representing a Z-module isomorphic to Z^r+Z /t[1]+...+Z /t[-1]. The torsion part is transformed into a chain of divisors, and 1's are omitted. If r is omitted, it is taken to be 0; if t is omitted, it is taken to be the empty list.
Examples
> | modz(3, [2, 7, 8, 1]); |
> | modz(); evalb(modz() = 0); |
> | M1 := modz(1, [2])+modz([2]); type(M1, MODZ); |
> | M2 := directsum(modz(1, [2]), modz([2])); type(M2, MODZ); |
rank(M::MODZ)::nonnegint
The rank of the (free) quotient of M by its torsion submodule.
torsion(M::MODZ)::list(posint)
The list of elementary divisors of the torsion submodule of M as a chain of divisors.