Dear Max, dear GAP Forum, The description of Zero and ZeroMutable in the chapter "Domains and their Elements" of the reference manual states these operations as primarily designed to be applicable to additive elements rather than domains (only 'Zero' may be applicable to a domain, which has to be in this case an additive magma-with-zero). This why ZeroMutable is applicable to Zero(M) but not to M in the example in question.
Best, Alexander On 19 Mar 2010, at 13:43, Max Horn wrote: > Dear Forum members, > > I am doing some work in GAP with integral group rings, specifically with > modules over those. For this, I wanted to get a mutable zero "vector" of a > module M (to be modified later on). However, it turns out that ZeroMutable(M) > does not work (in GAP 4.4.12) for my case. To my confusion, > ZeroMutable(Zero(M)) *does* work. Am I doing something wrong? Is this > intentional or a bug? > > > Here's an explicit example > > gap> G:=SymmetricGroup(3); # Some group, doesn't matter which > Sym( [ 1 .. 3 ] ) > gap> ZG:=GroupRing(Integers,G); # integral group ring of G > <free left module over Integers, and ring-with-one, with 2 generators> > gap> M:=ZG^3; # some ZG module > ( <free left module over Integers, and ring-with-one, with 2 generators>^3 ) > gap> Zero(M); IsMutable(last); > [ <zero> of ..., <zero> of ..., <zero> of ... ] > false > gap> ZeroMutable(Zero(M)); IsMutable(last); > [ <zero> of ..., <zero> of ..., <zero> of ... ] > true > gap> ZeroMutable(M); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 1st choice method found for `ZERO_MUT' on 1 arguments called from > <function>( <arguments> ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > > > Best regards, > Max _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum