
Section 8, continued
Exercise 8.2
gap> Size(Idempotents(Integers mod 3)); 2 gap> Size(Idempotents(Integers mod 3^2)); 2 gap> Size(Idempotents(Integers mod 3^3)); 2 gap> Size(Idempotents(Integers mod 3^4)); 2 gap> Size(Idempotents(Integers mod 5^4)); 2 gap> Size(Idempotents(Integers mod 5^3)); 2 gap> Size(Idempotents(Integers mod 5^2)); 2 gap> Size(Idempotents(Integers mod 2^2)); 2 gap> Size(Idempotents(Integers mod 2^3)); 2 gap> Size(Idempotents(Integers mod 2*3)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `PROD' on 2 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> quit; gap> Size(Idempotents(Integers mod 6)); 4 gap> Size(Idempotents(Integers mod (2*3))); 4 gap> Size(Idempotents(Integers mod (5*3))); 4 gap> Size(Idempotents(Integers mod (5*7))); 4 gap> Size(Idempotents(Integers mod (5*7*11))); 8 gap> Size(Idempotents(Integers mod (5^2*7*11))); 8 gap> Size(Idempotents(Integers mod (5^2*7^3*11))); 8
Exercise 8.3
gap> Read("nilpotentCount");
gap> nilpotentCount(Integers mod 3);
1
gap> nilpotentCount(Integers mod 3^2);
3
gap> nilpotentCount(Integers mod 3^3);
9
gap> nilpotentCount(Integers mod 3^4);
27
gap> nilpotentCount(Integers mod 5^4);
125
gap> nilpotentCount(Integers mod 5^3);
25
gap> nilpotentCount(Integers mod 5^2);
5
gap> nilpotentCount(Integers mod (5*3));
1
gap> nilpotentCount(Integers mod (5*7));
1
gap> nilpotentCount(Integers mod (5*11));
1
gap> nilpotentCount(Integers mod (3*5*11));
1
gap> nilpotentCount(Integers mod (3^2*5*11));
3
gap> nilpotentCount(Integers mod (3^3*5*11));
9
gap> nilpotentCount(Integers mod (3*5^2*11));
5
gap> nilpotentCount(Integers mod (3^2*5^2*11));
15
Exercise 8.4 gap> Units(Integers mod 20); <group with 2 generators> gap> Elements(Units(Integers mod 20)); [ ZmodnZObj( 1, 20 ), ZmodnZObj( 3, 20 ), ZmodnZObj( 7, 20 ), ZmodnZObj( 9, 20 ), ZmodnZObj( 11, 20 ), ZmodnZObj( 13, 20 ), ZmodnZObj( 17, 20 ), ZmodnZObj( 19, 20 ) ]
Section 9: Ring Homomorphisms
gap> R := Integers mod 10;
(Integers mod 10)
gap> e := Elements(R);
[ ZmodnZObj( 0, 10 ), ZmodnZObj( 1, 10 ), ZmodnZObj( 2, 10 ), ZmodnZObj( 3, 10 ), ZmodnZObj( 4, 10 ),
ZmodnZObj( 5, 10 ), ZmodnZObj( 6, 10 ), ZmodnZObj( 7, 10 ), ZmodnZObj( 8, 10 ), ZmodnZObj( 9, 10 ) ]
gap> h := x -> e[6]*x;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 10), (Integers mod 10), function( x ) ... end )
gap> IsRingHomomorphism(f);
true
gap> h := x -> e[1]*x;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 10), (Integers mod 10), function( x ) ... end )
gap> IsRingHomomorphism(f);
true
gap> h := x -> e[2]*x;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 10), (Integers mod 10), function( x ) ... end )
gap> IsRingHomomorphism(f);
true
gap> h := x -> e[3]*x;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 10), (Integers mod 10), function( x ) ... end )
gap> IsRingHomomorphism(f);
false
gap> Read("ringHoms");
gap> ringHoms(10);
[ true, true, false, false, false, true, true, false, false, false ]
Exercise 9.1 gap> ringHoms(15); [ true, true, false, false, false, false, true, false, false, false, true, false, false, false, false ]
Exercise 9.2 gap> ringHoms(25); [ true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false ]
gap> ringHoms(16);
[ true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false ]
gap> ringHoms(24);
[ true, true, false, false, false, false, false, false, false, true, false, false, false, false, false, false, true,
false, false, false, false, false, false, false ]
gap>
gap> Read("ringHoms");
gap> ringHoms(10);
[ 1, true, 2, true, 3, false, 4, false, 5, false, 6, true, 7, true, 8, false, 9, false, 10, false ]
gap> Read("ringHoms");
gap> ringHoms(10);
[ ZmodnZObj( 0, 10 ), true, ZmodnZObj( 1, 10 ), true, ZmodnZObj( 2, 10 ), false, ZmodnZObj( 3, 10 ), false,
ZmodnZObj( 4, 10 ), false, ZmodnZObj( 5, 10 ), true, ZmodnZObj( 6, 10 ), true, ZmodnZObj( 7, 10 ), false,
ZmodnZObj( 8, 10 ), false, ZmodnZObj( 9, 10 ), false ]
Exercise 9.6
gap> R := Integers mod 15;
(Integers mod 15)
gap> h := x -> x^0;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 15), (Integers mod 15), function( x ) ... end )
gap> IsRingHomomorphism(f);
false
gap> h := x -> x^1;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 15), (Integers mod 15), function( x ) ... end )
gap> IsRingHomomorphism(f);
true
gap> h := x -> x^2;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 15), (Integers mod 15), function( x ) ... end )
gap> IsRingHomomorphism(f);
false
gap> h := x -> x^3;
function( x ) ... end
gap> f := MappingByFunction(R,R,h);
MappingByFunction( (Integers mod 15), (Integers mod 15), function( x ) ... end )
gap> IsRingHomomorphism(f);
false
gap> Read("ringHoms2");
gap> ringHoms(15);
[ ZmodnZObj( 0, 15 ), true, ZmodnZObj( 1, 15 ), true, ZmodnZObj( 2, 15 ), false, ZmodnZObj( 3, 15 ), false,
ZmodnZObj( 4, 15 ), false, ZmodnZObj( 5, 15 ), false, ZmodnZObj( 6, 15 ), true, ZmodnZObj( 7, 15 ), false,
ZmodnZObj( 8, 15 ), false, ZmodnZObj( 9, 15 ), false, ZmodnZObj( 10, 15 ), true, ZmodnZObj( 11, 15 ), false,
ZmodnZObj( 12, 15 ), false, ZmodnZObj( 13, 15 ), false, ZmodnZObj( 14, 15 ), false ]
gap> ringHoms2(15);
[ false, true, false, false, false, true, false, false, false, true, false, false, false, true, false ]
gap> Read("ringHoms2");
gap> ringHoms2(15);
[ 0, false, 1, true, 2, false, 3, false, 4, false, 5, true, 6, false, 7, false, 8, false, 9, true, 10, false, 11,
false, 12, false, 13, true, 14, false ]
Exercise 9.7 gap> ringHoms2(25); [ 0, false, 1, true, 2, false, 3, false, 4, false, 5, false, 6, false, 7, false, 8, false, 9, false, 10, false, 11, false, 12, false, 13, false, 14, false, 15, false, 16, false, 17, false, 18, false, 19, false, 20, false, 21, false, 22, false, 23, false, 24, false ]
gap> ringHoms2(16); [ 0, false, 1, true, 2, false, 3, false, 4, false, 5, false, 6, false, 7, false, 8, false, 9, false, 10, false, 11, false, 12, false, 13, false, 14, false, 15, false ] gap> ringHoms2(24); [ 0, false, 1, true, 2, false, 3, false, 4, false, 5, false, 6, false, 7, false, 8, false, 9, false, 10, false, 11, false, 12, false, 13, false, 14, false, 15, false, 16, false, 17, false, 18, false, 19, false, 20, false, 21, false, 22, false, 23, false ] gap> ringHoms2(27); [ 0, false, 1, true, 2, false, 3, false, 4, false, 5, false, 6, false, 7, false, 8, false, 9, false, 10, false, 11, false, 12, false, 13, false, 14, false, 15, false, 16, false, 17, false, 18, false, 19, false, 20, false, 21, false, 22, false, 23, false, 24, false, 25, false, 26, false ] gap> ringHoms(21); [ ZmodnZObj( 0, 21 ), true, ZmodnZObj( 1, 21 ), true, ZmodnZObj( 2, 21 ), false, ZmodnZObj( 3, 21 ), false, ZmodnZObj( 4, 21 ), false, ZmodnZObj( 5, 21 ), false, ZmodnZObj( 6, 21 ), false, ZmodnZObj( 7, 21 ), true, ZmodnZObj( 8, 21 ), false, ZmodnZObj( 9, 21 ), false, ZmodnZObj( 10, 21 ), false, ZmodnZObj( 11, 21 ), false, ZmodnZObj( 12, 21 ), false, ZmodnZObj( 13, 21 ), false, ZmodnZObj( 14, 21 ), false, ZmodnZObj( 15, 21 ), true, ZmodnZObj( 16, 21 ), false, ZmodnZObj( 17, 21 ), false, ZmodnZObj( 18, 21 ), false, ZmodnZObj( 19, 21 ), false, ZmodnZObj( 20, 21 ), false ]
Section 10: Polynomial Rings
gap> R1:= Integers mod 7; GF(7) gap> P1:= PolynomialRing(R1); PolynomialRing(..., [ x_1 ]) gap> x:= X(R1, "x"); x gap> g:= x^2-2; x^2+Z(7)^5 gap> Factors(g); [ x+Z(7), x+Z(7)^4 ] gap> IsIrreducible(g); false gap> Int(Z(7)); 3 gap> Int(Z(7)^4); 4 gap> gap> R2:= Integers mod 11; GF(11) gap> P2:= PolynomialRing(R2); PolynomialRing(..., [ x_1 ]) gap> y:= X(R2, "y"); y gap> y^3-2*y+1; y^3+Z(11)^6*y+Z(11)^0 gap> R:= Rationals; Rationals gap> z:= X(R, "z"); z gap> z^2-1; z^2-1 gap> Factors(z); [ z ] gap> f:= z^2-1; z^2-1 gap> Factors(f); [ z-1, z+1 ] gap> Factors(z^2-1); [ z-1, z+1 ] gap> quit;Back to Home Page
This PREP workshop is made possible by the NSF grant DUE: 0341481