1#@local R,a,b,c,d
2gap> START_TEST("zmodnze.tst");
3gap> R:=RingInt(CF(4)) mod 5;
4(RingInt(CF(4)) mod 5)
5gap> IsFinite(R);
6true
7gap> Size(R);
825
9gap> IsFinite(R);
10true
11gap> AsList(R);
12[ ( 0 mod 5 ), ( 1 mod 5 ), ( 2 mod 5 ), ( 3 mod 5 ), ( 4 mod 5 ),
13  ( E(4) mod 5 ), ( 2*E(4) mod 5 ), ( 3*E(4) mod 5 ), ( 4*E(4) mod 5 ),
14  ( 1+E(4) mod 5 ), ( 1+2*E(4) mod 5 ), ( 1+3*E(4) mod 5 ),
15  ( 1+4*E(4) mod 5 ), ( 2+E(4) mod 5 ), ( 2+2*E(4) mod 5 ),
16  ( 2+3*E(4) mod 5 ), ( 2+4*E(4) mod 5 ), ( 3+E(4) mod 5 ),
17  ( 3+2*E(4) mod 5 ), ( 3+3*E(4) mod 5 ), ( 3+4*E(4) mod 5 ),
18  ( 4+E(4) mod 5 ), ( 4+2*E(4) mod 5 ), ( 4+3*E(4) mod 5 ),
19  ( 4+4*E(4) mod 5 ) ]
20gap> One(R);
21( 1 mod 5 )
22gap> IsUnit(One(R));
23true
24gap> Zero(R);
25( 0 mod 5 )
26gap> IsUnit(Zero(R));
27false
28gap> a:=E(4)*One(R);
29( E(4) mod 5 )
30gap> b:=-One(R);
31( 4 mod 5 )
32gap> c:=a+b;
33( 4+E(4) mod 5 )
34gap> d:=E(4)+c;
35( 4+2*E(4) mod 5 )
36gap> c+2;
37( 1+E(4) mod 5 )
38gap> d*E(4);
39( 3+4*E(4) mod 5 )
40gap> d*3;
41( 2+E(4) mod 5 )
42gap> ZmodnZObj(2,4)*d;
43( 3+4*E(4) mod 5 )
44gap> d*ZmodnZObj(2,4);
45( 3+4*E(4) mod 5 )
46gap> a*c;
47( 4+4*E(4) mod 5 )
48gap> IsUnit(a);
49true
50gap> Zero(a);
51( 0 mod 5 )
52gap> One(a);
53( 1 mod 5 )
54gap> Zero(a) in R;
55true
56gap> One(a) in R;
57true
58gap> Cyclotomic(d);
594+2*E(4)
60gap> a*a^-1;
61( 1 mod 5 )
62gap> a*a^-1=One(R);
63true
64gap> d^-1;
65fail
66gap> Number(R,IsUnit);
6716
68gap> Number(R,x->IsUnit(R,x));
6916
70gap> RingInt(GF(2));
71Error, RingOfIntegralCyclotomics : an argument is not cyclotomic field !
72gap> STOP_TEST( "zmodnze.tst", 1);
73