Quotient Polynomial Rings by Maple
Kahtan H. Alzubaidy
Department of Mathematics, Faculty of Science, University of Benghazi
E-mail: kahtanalzubaidy@yahoo.com
Key Words: Quotient Rings, Multivariate Polynomials, Groebner Basis
Introduction.
Quotient polynomial rings over the infinite field containing < are involved. The computations concern the univariate polynomial rings and the multivariate polynomial rings in two variables. In both cases a vector space basis for the quotient is constructed. The case of of several variables includes cases of infinite dimensions. Procedure II-2 recognizes the infinite dimensional cases , however we shall restrict ourselves to the finite computations. Ring operations of addition and multiplication on the quotients are computed as well.
Goebner basis is used and the computations are carried out in Maple 13.
I) Univariate Polynomials.
Let F be a field. The polynomialring F[x] is a principal ideal domain. If I is an ideal of F[x], then I=<f(x)> for some f(x)2F[x].
We have the quotient polynomial ring F[x]/I.
F[x]/I={r(x): r(x) is the remainder of any polynomial in F[x] when it is divided by f(x)}.
Theorem 1.
If the degree of f(x) is n, then F[x]/I is an n-dimensional vector space over F with basis {1,x,..,}.
The ring operations of F[x]/I are given as follows
1) addition
F[x]/I
2) multiplication
Theorem 2.
F[x]/I is a field iff f(x) is irreducible over F.
The inverse of r(x) in the field F[x]/I is given as follows
gcd(f(x),r(x))=u(x)f(x)+v(x)r(x)=1 for some u(x), v(x)2F[x]. Therefore v(x)r(x)=1 in F[x]/I. Thus inverse(r(x))=v(x).
Proceduers
Example
ads:=proc(A,B,f);
sort(collect(A+B,x),x);
end proc;
mus:=proc(A,B,f) local p;
p:=collect(expand(A*B),x);
sort(rem(p,f,x),x);end proc;
inv:=proc(A,f);
gcdex(A,f,x,'u','v');
sort(u,x);
.
Theorem 3.
Corollory 4.
, and
.Thus we have
Theorem 5.
Corollory 6.
Procedure II.1
Leading Monomials
lm:=proc() local L,G,h,hh,H;
L:= [seq(args[i],i=1..nargs)];
G:=Basis(L,tdeg(x,y));
h:=LeadingMonomial(G,tdeg(x,y));if nops(h)=1 then h; else
hh:=sum(h[j],j=1..nops(h));
H:=sort(hh,order=plex(x,y));
[seq(op(s,H),s=1..nops(H))];fi
Procedure II.2
fin:=proc() local K;
K:=lm(seq(args[i],i=1..nargs));
if gcd(K[1],K[nops(K)])=1 then print("quotient is finite dimentional")else print("quotient is infinite dimensional") fi;
Procedure II.3
tm:=proc() local K,p,q;
q:=expand(sum((op(1,K[1]))^i,i=0..op(2,K[1])-1)* sum((op(1,K[nops(K)]))^j,j=0..op(2,K[nops(K)])-1));
{seq(op(r, q), r = 1 .. nops(q))};
Procedure II.4
rm:=proc(w,A) local bn;
bn:=u->is(divide(u,w));
remove(bn,A);
Procedure II.5
vsb:=proc() local LM,B,A,w;
LM:=lm(seq(args[i],i=1..nargs));
B:={seq(LM[t],t=2..nops(LM)-1)};A:=tm(seq(args[i],i=1..nargs));
for w in B do A:=rm(w,A) od: A;
Ring Operations
Addition
Procedure II.6
adm:=proc(A,B,L) local G;
G:=Basis(L,tdeg(x,y)); NormalForm(A+B,G,tdeg(x,y));
Multiplication
Procedure II.7
mum:=proc(A,B,L) local G;
G:=Basis(L,tdeg(x,y)); NormalForm(A*B,G,tdeg(x,y))
addition A+B
multiplication AB
square
Remark
The above procedures can easily be generalized to include the case of three variables x, y, z.