gap> g:=[[0,5,5,4],[0,0,5,5],[6,4,4,4],[3,3,1,3]]*One(GF(7)); [ [ 0*Z(7), Z(7)^5, Z(7)^5, Z(7)^4 ], [ 0*Z(7), 0*Z(7), Z(7)^5, Z(7)^5 ], [ Z(7)^3, Z(7)^4, Z(7)^4, Z(7)^4 ], [ Z(7), Z(7), Z(7)^0, Z(7) ] ] gap> Display(g); . 5 5 4 . . 5 5 6 4 4 4 3 3 1 3 gap> Order(g); 200 gap> h:=g^77; [ [ Z(7)^2, Z(7)^2, Z(7), Z(7)^3 ], [ Z(7)^0, Z(7)^2, Z(7)^2, Z(7) ], [ Z(7), Z(7)^4, Z(7), Z(7)^4 ], [ Z(7)^4, Z(7)^3, Z(7)^5, Z(7)^5 ] ] gap> g5:=g^8;Order(g5); [ [ Z(7)^5, 0*Z(7), Z(7), 0*Z(7) ], [ Z(7)^3, Z(7)^5, 0*Z(7), Z(7) ], [ Z(7)^3, Z(7)^3, Z(7)^3, 0*Z(7) ], [ 0*Z(7), Z(7)^3, 0*Z(7), Z(7)^3 ] ] 25 gap> h5:=h^8;Order(h5); [ [ Z(7)^0, Z(7)^4, Z(7)^5, 0*Z(7) ], [ Z(7)^4, Z(7)^0, Z(7)^4, Z(7)^5 ], [ Z(7)^4, Z(7), Z(7)^5, Z(7)^4 ], [ Z(7)^0, Z(7), 0*Z(7), Z(7)^5 ] ] 25 gap> a:=g5^5;b:=h5^5; [ [ Z(7)^4, Z(7)^0, Z(7)^2, Z(7)^0 ], [ Z(7)^0, Z(7)^4, Z(7)^0, Z(7)^2 ], [ Z(7)^3, Z(7)^3, 0*Z(7), Z(7)^3 ], [ Z(7)^2, Z(7)^4, Z(7)^2, Z(7)^5 ] ] [ [ Z(7), Z(7), Z(7)^4, Z(7)^2 ], [ Z(7)^4, Z(7), Z(7), Z(7)^4 ], [ 0*Z(7), Z(7)^5, Z(7)^2, Z(7)^3 ], [ Z(7)^3, Z(7)^0, Z(7)^4, Z(7)^5 ] ] gap> First([0..4],x->a^x=b); 2 gap> giant:=List([0..2],x->a^(x*2)); [ [ [ Z(7)^0, 0*Z(7), 0*Z(7), 0*Z(7) ], [ 0*Z(7), Z(7)^0, 0*Z(7), 0*Z(7) ], [ 0*Z(7), 0*Z(7), Z(7)^0, 0*Z(7) ], [ 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^0 ] ] , [ [ Z(7), Z(7), Z(7)^4, Z(7)^2 ], [ Z(7)^4, Z(7), Z(7), Z(7)^4 ], [ 0*Z(7), Z(7)^5, Z(7)^2, Z(7)^3 ], [ Z(7)^3, Z(7)^0, Z(7)^4, Z(7)^5 ] ] , [ [ Z(7)^5, Z(7)^5, Z(7)^2, Z(7) ], [ Z(7)^3, Z(7)^5, Z(7)^5, Z(7)^2 ], [ 0*Z(7), Z(7), Z(7)^0, Z(7)^3 ], [ Z(7), Z(7)^4, Z(7)^3, Z(7)^2 ] ] ] gap> baby:=List([0..2],x->b*a^-x); [ [ [ Z(7), Z(7), Z(7)^4, Z(7)^2 ], [ Z(7)^4, Z(7), Z(7), Z(7)^4 ], [ 0*Z(7), Z(7)^5, Z(7)^2, Z(7)^3 ], [ Z(7)^3, Z(7)^0, Z(7)^4, Z(7)^5 ] ] , [ [ Z(7)^4, Z(7)^0, Z(7)^2, Z(7)^0 ], [ Z(7)^0, Z(7)^4, Z(7)^0, Z(7)^2 ], [ Z(7)^3, Z(7)^3, 0*Z(7), Z(7)^3 ], [ Z(7)^2, Z(7)^4, Z(7)^2, Z(7)^5 ] ] , [ [ Z(7)^0, 0*Z(7), 0*Z(7), 0*Z(7) ], [ 0*Z(7), Z(7)^0, 0*Z(7), 0*Z(7) ], [ 0*Z(7), 0*Z(7), Z(7)^0, 0*Z(7) ], [ 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^0 ] ] ] gap> is:=Intersection(giant,baby)[1]; [ [ Z(7)^0, 0*Z(7), 0*Z(7), 0*Z(7) ], [ 0*Z(7), Z(7)^0, 0*Z(7), 0*Z(7) ], [ 0*Z(7), 0*Z(7), Z(7)^0, 0*Z(7) ], [ 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^0 ] ] gap> Position(giant,is); 1 gap> Position(baby,is); 3 gap> e0:=2; 2 gap> h5:=h5/g5^2; [ [ Z(7)^0, 0*Z(7), 0*Z(7), 0*Z(7) ], [ 0*Z(7), Z(7)^0, 0*Z(7), 0*Z(7) ], [ 0*Z(7), 0*Z(7), Z(7)^0, 0*Z(7) ], [ 0*Z(7), 0*Z(7), 0*Z(7), Z(7)^0 ] ] gap> Order(h5); 1 gap> e5:=2; 2 gap> g2:=g^25;Order(g2); [ [ Z(7), Z(7)^0, Z(7), Z(7) ], [ 0*Z(7), Z(7), Z(7)^0, Z(7) ], [ Z(7)^0, Z(7)^5, Z(7)^4, Z(7)^2 ], [ Z(7)^2, Z(7)^3, Z(7)^3, Z(7)^5 ] ] 8 gap> h2:=h^25;Order(h2); [ [ Z(7)^4, Z(7)^3, Z(7)^4, Z(7)^4 ], [ 0*Z(7), Z(7)^4, Z(7)^3, Z(7)^4 ], [ Z(7)^3, Z(7)^2, Z(7), Z(7)^5 ], [ Z(7)^5, Z(7)^0, Z(7)^0, Z(7)^2 ] ] 8 gap> e2:=First([1,3,5,7],x->g2^x=h2); 5 gap> ChineseRem([25,8],[e5,e2]); 77