PREP - Professional Enhancement Programs of the MAA



 

Exploring Abstract Algebra with Computer Software

A PREP Workshop

GAP log - Thursday July 1, 2:30 pm - 4:00 pm

Section 13 Appendix: Error Correcting Codes
gap> R := Integers mod 2;
GF(2)
gap> x := X(R,"x");
x
gap> g := 1 + x^2 + x^3;
x^3+x^2+Z(2)^0
gap> a := x+x^2+x^4;
x^4+x^2+x
gap> b := a*g;
x^7+x^6+x^5+x^4+x^3+x^2+x
Exercise 13A.1
gap> (1+x)*g;
x^4+x^2+x+Z(2)^0
gap> (1+x^2)*g;
x^5+x^4+x^3+Z(2)^0
gap> (x+x^2)*g;
x^5+x^3+x^2+x
gap> (1+x+x^2)*g;
x^5+x+Z(2)^0
gap> IntVecFFE(CoefficientsOfUnivariatePolynomial((1+x+x^2)*g));
[ 1, 1, 0, 0, 0, 1 ]
gap> IntVecFFE(CoefficientsOfUnivariatePolynomial((1+x+x^2+x^3)*g));
[ 1, 1, 0, 1, 0, 0, 1 ]
gap> CoefficientsOfUnivariatePolynomial((1+x+x^2+x^3)*g)
> ;
<an immutable GF2 vector of length 7>
gap> Factors(g);
[ x^3+x^2+Z(2)^0 ]
gap> polyring := PolynomialRing(GF(8));
PolynomialRing(..., [ x ])
gap> factors := Factors(polyring,g);
[ x+Z(2^3)^3, x+Z(2^3)^5, x+Z(2^3)^6 ]
gap> a := -Z(2^3)^3;
Z(2^3)^3
gap> a^2; a^3; a^4; a^5; a^6; a^7;
Z(2^3)^6
Z(2^3)^2
Z(2^3)^5
Z(2^3)
Z(2^3)^4
Z(2)^0
gap> 1+a;
Z(2^3)
gap> 1+a^2;
Z(2^3)^2
gap> a+a^2;
Z(2^3)^4
gap> 1+a+a^2;
Z(2^3)^5
Exercise 13A.4
gap> Factors(polyring,x^7-1);
[ x+Z(2)^0, x+Z(2^3), x+Z(2^3)^2, x+Z(2^3)^3, x+Z(2^3)^4, x+Z(2^3)^5, x+Z(2^3)^6 ]
gap> v := x+x^2+x^5+x^6;
x^6+x^5+x^2+x
gap> v/g;
(x^6+x^5+x^2+x)/(x^3+x^2+Z(2)^0)
gap> PolynomialReducedRemainder(v,[g],MonomialTotalDegreeLess);
x+Z(2)^0
gap> w := v + x^5;
x^6+x^2+x
gap> w/g;
x^3+x^2+x
Exercise 13A.5
gap> v := x + x^4+x^5+x^6;
x^6+x^5+x^4+x
gap> v/g;
x^3+x
gap> v:= 1+x+x^2+x^4+x^5+x^6;
x^6+x^5+x^4+x^2+x+Z(2)^0
gap> v/g;
(x^6+x^5+x^4+x^2+x+Z(2)^0)/(x^3+x^2+Z(2)^0)
gap> PolynomialReducedRemainder(v,[g],MonomialTotalDegreeLess);
x^2+Z(2)^0
gap> w := v+x^3;
x^6+x^5+x^4+x^3+x^2+x+Z(2)^0
gap> w/g;
x^3+x+Z(2)^0
Section 14: Galois Theory
gap> x := X(Rationals, "x");
x
gap> Factors(x^4-10*x^2+1);
[ x^4-10*x^2+1 ]
gap> F := AlgebraicExtension(Rationals,x^4-10*x^2+1);
<field in characteristic 0>
gap> a := RootOfDefiningPolynomial(F);
(a)
gap> a^4;
(-1+10*a^2)
gap> x := X(GF(3),"x");
x
gap> Factors(x^9-x);
[ x, x+Z(3)^0, x-Z(3)^0, x^2+Z(3)^0, x^2+x-Z(3)^0, x^2-x-Z(3)^0 ]
gap> F := AlgebraicExtension(GF(3),x^2+Z(3)^0);
<field of size 9>
gap> g := GaloisGroup(AsField(GF(3),GF(81)));
<group with 1 generators>
gap> Order(g);
4
gap> Elements(g);
[ IdentityMapping( GF(3^4) ), FrobeniusAutomorphism( GF(3^4) )^2, FrobeniusAutomorphism( GF(3^4) ), 
  FrobeniusAutomorphism( GF(3^4) )^3 ]
gap> Order(Elements(g)[3]);
4
gap> Subfields(GF(81));
[ GF(3), GF(3^2), GF(3^4) ]
gap> alpha:=Sqrt(2)+Sqrt(3); MinimalPolynomial(Rationals,alpha); 
E(24)-E(24)^11-E(24)^14+E(24)^17-E(24)^19+E(24)^22
x^4-10*x^2+1
Exercise 14.1
gap> g := GaloisGroup(AsField(GF(2),GF(8)));
<group with 1 generators>
gap> Order(g);
3
gap> g := GaloisGroup(AsField(GF(2),GF(32)));
<group with 1 generators>
gap> Order(g);
5
gap> g := GaloisGroup(AsField(GF(2),GF(512)));
<group with 1 generators>
gap> Order(g);
9
Exercise 14.2
gap> g := GaloisGroup(AsField(GF(3),GF(9)));
<group with 1 generators>
gap> Order(g);
2
gap> g := GaloisGroup(AsField(GF(3),GF(3^6)));
<group with 1 generators>
gap> Order(g);
6
Exercise 14.3
gap> g := GaloisGroup(AsField(GF(9),GF(81)));
<group with 1 generators>
gap> Order(g);
2
gap> g := GaloisGroup(AsField(GF(9),GF(3^8)));
<group with 1 generators>
gap> Order(g);
4
gap> g := GaloisGroup(AsField(GF(9),GF(3^10)));
<group with 1 generators>
gap> Order(g);
5
gap> g := GaloisGroup(AsField(GF(25),GF(625)));
<group with 1 generators>
gap> Order(g);
2
gap> g := GaloisGroup(AsField(GF(25),GF(5^6)));
<group with 1 generators>
gap> Order(g);
3
Exercise 14.4
gap> g := GaloisGroup(AsField(GF(27),GF(3^6)));
<group with 1 generators>
gap> Order(g);
2
gap> g := GaloisGroup(AsField(GF(27),GF(3^9)));
<group with 1 generators>
gap> Order(g);
3
gap> x := X(Rationals,"x");
x
gap> CyclotomicPolynomial(Rationals,15);
x^8-x^7+x^5-x^4+x^3-x+1
gap> Factors(x^8-x^7+x^5-x^4+x^3-x+1);
[ x^8-x^7+x^5-x^4+x^3-x+1 ]
gap> f := CF(8);
CF(8)
gap> E(8);
E(8)
gap> E(8)^8;
1
gap> E(8)^2;
E(4)
gap> E(8)^4;
-1
gap> CyclotomicPolynomial(Rationals,8);
x^4+1
gap> Subfields(f);
[ Rationals, GaussianRationals, CF(8), NF(8,[ 1, 3 ]), NF(8,[ 1, 7 ]) ]
gap> g :=GaloisGroup(AsField(Rationals,CF(8)));
<group of size 4 with 2 generators>
gap> Elements(g);
[ IdentityMapping( CF(8) ), ANFAutomorphism( CF(8), 3 ), ANFAutomorphism( CF(8), 5 ), ANFAutomorphism( CF(8), 7 ) ]
gap> e := Elements(g);
[ IdentityMapping( CF(8) ), ANFAutomorphism( CF(8), 3 ), ANFAutomorphism( CF(8), 5 ), ANFAutomorphism( CF(8), 7 ) ]
gap> Order(e[1]);
1
gap> Order(e[2]);
2
gap> Order(e[3]);
2
gap> Order(e[4]);
2
gap> LogTo();

Back to Home Page
 
 

This PREP workshop is made possible by the NSF grant DUE: 0341481