Polya Theory by Maple
Kahtan H. Alzubaidy
Key Words : Permutation Groups, Burnside's Theorem, Polya's Theorems
Introduction
In this application of Maple a few procedures are written to do the computations related to Burnside's counting theorem and also to Polya's theorems.
Everything is done in terms of permutation groups.
Permutations Group
A permutation for example = (1,2)(3,4) is represented by disjoint cycles
The identity of degree 4 , for example is given by [1,2,3,4] or [[1],[2],[3],[4]].
A permutation group is denoted by a list of its permutations.
A product of two permutations S and T of degree n.
p:=proc(S,T,n)
[seq(S[T[r]],r=1..n)];
end proc;
Basic Examples of Permutation Groups
Trivial group of degree 4
Id4:=[[1,2,3,4]];
(Symmetric Group S(n) of degree n )
S:=proc(n)
permute(n);
The above examples can be put in terms of disjoint cycles including 1-cycles as follows
Burnside Counting Theorem
Fixed Points of a Permutation
FixedPoints:=proc(L)
{select(x->is (x=L[x]),L)[]};
Group Action
Action of a permutation L of degree n on element x in {1,2,...,n}.
action:=proc(L,x)
L[x];
Orbit of x in a permutation group G
orbit:=proc(x,G)
{seq(action(L,x),L in G)};
Burnside counting theorem
Number of orbits =
G is a permutation group of degree n
Burnside:=proc(G,n)
1/nops(G)*add(nops(FixedPoints(g)),g = G);
Polya Theorems
Cycle Index Polynomial ZG of a permutation group G of degree n.
ZG(where
In the following procedurs permutation groups should be given in cycle notations
expo:=proc(L)
[seq(nops(op(i,L)),i=1..nops(L))];
l:=proc(L,m,t)
nops(select(x-> is(nops(x)=t),L));
exponents:=proc(L,m)
[seq(l(L,m,t),t=1..m)];
vars:=proc(m)
[seq(x[i],i=1..m)];
mono:=proc(L,m) local B,E;
B:= [seq(x[i],i=1..m)];
E:=exponents(L,m);
product((x[r])^E[r],r=1..m);
ZG:=proc(G,m)
1/nops(G) *add(mono(L,m),L=G);
Let D and R be two finite sets.
Polya Enumeration Theorem
The number of equivalence classes induced by
Polya1:=proc(G,d,r)
ZG(G,d);
subs([seq(x[i] = r, i = 1 .. d)],ZG(G,d));
Inventory Polynomials
Let D and R be two finite sets. The weight of r2R is a symbol w(r) associated with r. The weight of a function is defined by
w(f)=Note that w(
The inventory of F4
Theorem.
Let
Polya Fundamental Theorem.
Let D and R be two finite sets and G a permutation group of D. Then Inv(
The following procedure computes the inventory polynomial of a permutation group G of degree d in terms of the symbols
Polya2:=proc(G,d,r)
seq(a[i],i=1..r);
subs([seq(x[t] = sum(a[i]^t, i = 1 .. r),t=1..d)],ZG(G,d));
Let D and R be two finite sets. Suppose that G is a permutation group of degree
Polya Generalized Theorem(DeBruijn)
The following procedures lead to the computation of the number of these equivalence classes.
The powers
pr:=proc(h,p,n,r)
local q;
q:=t->p(q(t-1),h,n);
q(1):=h;
q(r);
List of numbers of fixed points of h,
R:=proc(h,p,n,m)
[seq(nops(FixedPoints(pr(h,p,n,r))),r=1..m)]
List of numbers of fixed points of
RR:=proc(H,n,m)
[seq(R(h,p,n,m),h in H)];
pgg:=proc()
local m,PP;
m:=nargs-1;PP:=PG(args[1],m);
subs([seq(x[i-1]=args[i],i=2..m+1)],PP);
G of degree m in cycles and H of degree n in permutation lists
Polya3:=proc(G,m,H,n)
local RRR;
RRR:=RR(H,n,m);
1/nops(H) *add(z,z in [seq(pgg(G,RRR[i][]),i=1..nops(H))]);
Generalized Polya's Fundamental Theorem(DeBruijn)
N =
Note that D ={1,2,..., m} and R ={ 1,2,...,n}.
One may program this formula by Maple to complete the procedures.
Department of Mathematics,
Faculty of Science,
University of Benghazi, Libya
E-mail: kahtanalzubaidy@yahoo.com