{VERSION 3 0 "APPLE_PPC_MAC" "3.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "" 0 21 "" 0 1 0 0 0 1 0 0 0 0 2 0 0 0 0 }{PSTYLE " Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 } {PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 8 2 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }{TEXT -1 0 "" }} {PARA 4 "" 0 "" {TEXT -1 36 "You will need the following packages" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "with(combinat);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 6 "Group s" }}{PARA 0 "" 0 "" {TEXT -1 144 "A group is a set of elements with a \nmultiplication operation, an identity element and\nan distinguished \+ element of the set which is the identity." }}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 16 "The cyclic group" }}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 27 "The cyclic group of order 5" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 98 "C5(set):=\{seq(i,i=0..4)\};\nC5(ident):=0;\nC5(mult):=(a,b)->( a+b) mod 5;\nC5(inverse):=a->(5-a) mod 5;" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 8 "C5(set);" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 103 "The following command loops over all pairs of g1, g2 in C5(set)\n and determines if g1 * g2 is in C5(set)" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "[seq(seq(member(C5(mult)(g1,g2),C5(set)),\ng1=C5(set) ),g2=C5(set))];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "convert( %,`and`);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 14 "C5(mult)(4,2);" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 65 "Loop for all a,b,c in C5(set) to see if a * (b * c) \+ = (a * b) * c" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 100 "[seq(seq( seq(C5(mult)(a,C5(mult)(b,c))=\nC5(mult)(C5(mult)(a,b),c),a=C5(set)),b =C5(set)),c=C5(set))];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "c onvert(%,`and`);" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 58 "Loop for all g in C5(set) to verify that C5(ident) * g = g" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 57 "convert([seq(C5(mult)(C5(ident),g)=g, g=C5( set))],`and`);" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 35 "The general cy clic group of order n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 149 "Cn :=proc(n) local grp,i:\n grp(set):=\{seq(i,i=0..n-1)\}:\n grp(ident) :=0:\n grp(mult):=(a,b)->(a+b) mod n:\n grp(inverse):=a->(n-a) mod n :\n grp;\nend;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "C7:=Cn(7 );" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "C7(set);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 82 "convert([seq(seq(member(C7(mult)(g1 ,g2),C7(set)),\ng1=C7(set)),g2=C7(set))],`and`);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "C24:=Cn(24);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "C24(set);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 19 "The Symmetr ic Group" }}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 63 "The symmetric gro up of permutations of 5 elements (order = 120)" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 220 "S5(set):=permute(5);\nS5(ident):=[1,2,3,4,5]; \nS5(mult):=proc(a,b) local i;\n [seq(a[b[i]],i=1..5)];\nend;\nS5(inv erse):=proc(a) local i,out;\n out:=[seq(i,i=1..5)]:\n for i from 1 t o 5 do\n out[a[i]]:=i;\n od;\n out;\nend;" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 162 "If S5 is not c losed then it will print a pair of elements for which g1 * g2 is not\n in the group. If S5 is closed then it will print \"all done!\" and no thing else." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 165 "for g1 in S 5(set) do\n for g2 in S5(set) do\n if not member(S5(mult)(g1,g2),S 5(set)) then\n print(g1,g2,S5(mult)(g1,g2));\n fi;\n od;\nod; \nprint(\"all done!\");" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 " S5(mult)([2,1,4,3,5],[5,2,3,1,4]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 31 "The symmetri c group of order n!" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 289 "Sn:= proc(n) local grp,i;\n grp(set):=permute(n);\n grp(ident):=[seq(i,i= 1..n)];\n grp(mult):=proc(a,b) local i;\n [seq(a[b[i]],i=1..n)];\n end;\n grp(inverse):=proc(a) local i,out;\n out:=[seq(i,i=1..n)] :\n for i from 1 to n do\n out[a[i]]:=i;\n od;\n out;\n \+ end;\n grp;\nend;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "S7:= Sn(7);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "S7(set);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 18 "The Dihedral group" }} {EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 27 "I am an exercise...solve me" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 281 "Dn:=proc(n) local grp,a, b;\n grp(set):=[seq(seq([a,b],a=0..n-1),b=0..1)];\n grp(ident):=[0,0 ];\n grp(inverse):=g->if g[2]=1 then g\n else [(n-g[1]) mod n,0]; \+ fi;\n grp(mult):=(g,h)->if g[2]=1 then [(g[1]-h[1]) mod n, 1-h[2]];\n else [(g[1]+h[1]) mod n, h[2]]; fi; \n grp;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 44 "Test if a \+ \"group\" satisfies the group axioms" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 135 "leftident:=proc(grp) local g;\n for g in grp(set) d o\n if not( grp(mult)(grp(ident),g) = g) then RETURN(false) fi;\n \+ od;\n true;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 136 "righ tident:=proc(grp) local g;\n for g in grp(set) do\n if not( grp(mu lt)(g,grp(ident)) = g) then RETURN(false) fi;\n od;\n true;\nend:" } }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 181 "isclosed:=proc(grp) local g1,g2;\n for g1 in grp(set) do\n for g2 in grp(set) do\n if \+ not( member(grp(mult)(g1,g2),grp(set))) then RETURN(false) fi;\n od ;\n od;\n true;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 257 "isassoc:=proc(grp) local g1,g2,g3;\n for g1 in grp(set) do\n for \+ g2 in grp(set) do\n for g3 in grp(set) do\n if not( grp(mu lt)(g1,grp(mult)(g2,g3))=\n grp(mult)(grp(mult)(g1,g2),g3) ) \+ then RETURN(false) fi;\n od; od; od;\n true;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 242 "hasinv:=proc(grp) local g;\n for \+ g in grp(set) do\n if not( grp(mult)(g, grp(inverse)(g)) = grp(iden t) ) then\n RETURN(false); fi;\n if not( grp(mult)(grp(inverse )(g), g) = grp(ident) ) then\n RETURN(false); fi;\n od;\n true; \nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 116 "isgroup:=proc(gr p);\n isclosed(grp) and isassoc(grp) and leftident(grp) \n and right ident(grp) and hasinv(grp);\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "S4:=Sn(4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "C8:=Cn(8);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "D4:=Dn(4) ;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "isgroup(S4);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "isgroup(C8);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "isgroup(D4);" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 26 "Conjugacy class of a group" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 299 "conjclass:=proc(group) local g,gset,out,ccls,h;\n g set:=[op(group(set))];\n out:=NULL;\n while nops(gset)>0 do\n g:= gset[1];\n ccls:=[seq(group(mult)(h,group(mult)(g,group(inverse)(h) )),\n h=group(set))];\n out:=out,\{op(ccls)\};\n gset:=remo ve(x->member(x,ccls),gset);\n od;\n [out];\nend:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 8 "Tests : " }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "conjclass(Cn(5));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "conjclass(Sn(5));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "conjclass(Dn(5));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "conjclass(Dn(6));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 127 "\nConcepts to do as exercises/additions:\nsemi-dire ct product of groups\ndirect product of groups\nquotient groups\nwreat h products\n" }}}{EXCHG {PARA 4 "" 0 "" {TEXT -1 410 "Exercise: Write \+ a function which given an n, returns a Maple\nrepresentation of the di hedral group of order 2n. The elements\ncan be represented as pairs [ a,b] with 0 <= a < n and b = 0 or 1.\nMultiplication will be defined a s\n[a,0] * [b,c] = [a+b mod n, c] and\n[a,1] * [b,c] = [a-b mod n, 1-c ]\nMake sure that your dihedral groups of order 2 through 12 all satis fy\nthe conditions so that isgroup( Dn ) is true.\n" }}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 15 "Representations" }}{PARA 0 "" 0 "" {TEXT -1 63 "A matrix representation is a homomorphism from a group\nto Gl(n )" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 47 "Test if a map from G->Gl(n) \+ is a representation" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 266 "isma trep:=proc(rep) local g1,g2;\n for g1 in rep(group)(set) do\n for \+ g2 in rep(group)(set) do\n if not iszero(evalm(rep(hom)(rep(group )(mult)(g1,g2))\n -rep(hom)(g1)&*rep(hom)(g2)))\n then pr int(g1,g2); RETURN(false); fi;\n od;\n od;\n true;\nend:" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}{PARA 0 "" 0 " " {TEXT -1 219 "This function doesn't WORK. There is something wrong \+ with it. What is it?\nIf something is a matrix rep then ismatrep will return true but find me a something\nthat isn't a matrix representati on that also returns true.\n" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 47 "A representation of the cyclic group of order 5" }} {EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 53 "You will either need the func tion C5 or Cn from above" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "C5:=Cn(5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 114 "permrep5(gr oup):=C5;\npermrep5(hom):=g->evalm([[0,0,0,0,1],[1,0,0,0,0],[0,1,0,0,0 ],[0,0,1,0,0],[0,0,0,1,0]]^(5+g));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "permrep5(hom)(1);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 9 "latex(%);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "ismatrep(permrep5);" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 148 " Try to find a matrix T such that T &* permrep5(j) &* T^(-1) is diagona l for all 1 \\leq j < 5\nHint: try eigenvectors or the built in Maple \+ functions " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 42 "Another r epresentation of the cyclic group" }}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 51 "The following matrix used in \+ mrC5(hom) has order 5." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 90 "m rC5(group):=C5;\nmrC5(hom):=j->evalm([[0,1,0,0],[0,0,1,0],[0,0,0,1],[- 1,-1,-1,-1]]^(5+j));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "ism atrep(mrC5);" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 " " 0 "" {TEXT -1 79 "BUT not everything is a matrix representation. Wh y does ismatrep return false?" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 92 "mrC5p(group):=C5;\nmrC5p(hom):=j->evalm([[0,1,0,0],[0,0,1,0],[-1 ,-1,-1,-1],[0,0,0,1]]^(5+j));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "ismatrep(mrC5p);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 29 "The sign representation of Sn" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 187 "lengthperm:=proc(pi) local i,j, count;\n count:=0; \n for i from 1 to nops(pi) do\n for j from i to nops(pi) do\n \+ if pi[i]>pi[j] then count:=count+1; fi;\n od;\n od;\n count;\n end;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "signrep4(group):=Sn (4);\nsignrep4(hom):=pi->[[(-1)^lengthperm(pi)]];" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 47 "seq(signrep4(hom)(pi),pi=signrep4(group)(set ));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "ismatrep(signrep4); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 25 "The permutation r ep of Sn" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 179 "permrep:=proc(n) local rep;\n rep (group):=Sn(n);\n rep(hom):=proc(perm) local i,j;\n [seq([seq(`if` (perm[i]=j,1,0),\n i=1..nops(perm))],j=1..nops(perm))];\n end;\n rep;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "permrep4:=p ermrep(4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "ismatrep(perm rep4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "evalm(permrep4(ho m)([3,1,2,4]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 60 "evalm(pe rmrep4(hom)([1,3,2,4]) &* permrep4(hom)([1,2,4,3]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "S4(mult)([1,3,2,4],[1,2,4,3]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "evalm(permrep4(hom)([1,3,4,2 ]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "T:=[[1,1,1,1],[1,-1 ,0,0],[0,1,-1,0],[0,0,1,-1]];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "evalm( T&*permrep4(hom)([2,3,4,1])&*T^(-1));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 1 "\n" }} {EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 137 "Concepts to do as exercises/ additions:\nGiven a T invertible return T X(g) T^(-1)\ndirect sum of m atrix reps\ntensor product of matrix reps\n" }{TEXT -1 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 7 "Modules " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 14 "A module of S4" }}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }} {PARA 0 "" 0 "" {TEXT -1 243 "We must require (for limitations of Mapl e) that the basis we choose is compatible\nwith the use of the coeff c ommand. A module will be a group, a list of basis elements,\nand a fu nction which acts on linear combinations of these basis elements." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 85 "amod4(basis):=[v[x1*x2],v[x1 *x3],v[x1*x4],\n v[x2*x3],v[x2*x4],v[x3*x4]];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "amod4(group):=Sn(4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 96 "amod4(action):=proc(perm,expr) loca l i;\n subs(\{seq(cat(x,i)=cat(x,perm[i]),i=1..4)\},expr);\nend;" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "amod4(action)([3,1,2,4],v[x1 *x2]+3*v[x1*x4]-v[x2*x3]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 51 "The module of the regular representation of a group" }} {EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 64 "Given a group return a module corresponding to the group algebra" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 297 "regmodule:=proc(group) local module,h;\n module(gro up):=group;\n module(basis):=[seq(v[h],h=group(set))]:\n module(acti on):=proc(g,expr) local sureps,h;\n sureps:=[seq(v[h]=v[group(mult) (g,h)],h=group(set))];\n subs(sureps,expr);\n end:\n print(\"basi s\");\n print(module(basis));\n module;\nend:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 10 "S3:=Sn(3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "regS3:=regmodule(S3);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "regS3(action)([3,1,2],v[[1,2,3]]+3*v[[1,3,2]]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 24 "The defining repr for S n" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 217 "defrep:=proc(n) local \+ module,i;\n module(group):=Sn(n);\n module(action):=proc( perm, expr ) local i;\n subs(\{seq(cat(x,i)=cat(x,perm[i]),i=1..n)\},expr);\n \+ end;\n module(basis):=[seq(cat(x,i),i=1..n)];\n module;\nend:" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 31 "matrix representation t o module" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 322 "matrep2module:= proc(rep) local module,dim,ii;\n module(group):=rep(group);\n dim:=n ops(rep(hom)(rep(group)(ident)));\n module(basis):=[seq(v[ii],ii=1..d im)];\n module(action):=proc(g,expr) local i,j, actmat;\n actmat:= rep(hom)(g);\n subs(\{seq(v[i]=add(actmat[j,i]*v[j],j=1..dim),i=1.. dim)\},expr);\n end;\n module;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "permmod4:=matrep2module(permrep4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "permmod4(basis);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 54 "permmod4(action)([3,1,4,2],v[1]+2*v[2]+3*v[3]+4* v[4]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 31 "module to ma trix representation" }}{PARA 0 "" 0 "" {TEXT -1 79 "the following func tion accepts a module and will return a matrix representation" }} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 307 "module2matrep:=proc(module) local rep;\n rep(group):=module(group);\n rep(hom):=proc(g) local i ,j,actlst;\n actlst:=[seq(module(action)(g,module(basis)[i]),\n \+ i=1..nops(module(basis)))];\n [seq([seq(coeff(actlst[i],module(ba sis)[j]),i=1..\n nops(actlst))],j=1..nops(actlst))];\n end;\n r ep;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "regS4:=regmodu le(Sn(4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 31 "regS4rep:=mod ule2matrep(regS4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 25 "regS4 rep(hom)([3,1,2,4]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "ism atrep(regS4rep);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 16 "H ere is a check:" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "anew4:=module2matrep(matrep2 module(permrep4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 29 "evalm (anew4(hom)([3,4,1,2]));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "evalm(permrep4(hom)([3,4,1,2]));" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 84 "If these are equal for all permutations then we have done\na \+ good job of programming." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 93 "convert([seq(iszero(evalm(anew4(hom)(pi)-permrep4(hom)(pi))),pi = ane w4(group)(set))],`and`);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{SECT 1 {PARA 4 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 6 "arep:=" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "eigenvectors(arep([4,1,2,3]));" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 95 "T:=[[1,1,1,1,1,1],[1,-1,0,0, 0,0],[0,1,-1,0,0,0],[0,0,1,-1,0,0],\n[0,0,0,1,-1,0],[0,0,0,0,1,-1]];" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "evalm(T &* arep([2,1,3,4] ) &* T^(-1));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "eigenvecto rs(%);" }}}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 113 "Concepts to do as exercises/additions:\ntensor prod uct of modules\ndirect sum of modules\nchange of basis\nsubmodules" }} }{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 10 "Characters" }}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 131 "A we will define a class function be a group and a \+ function which is equal for\nelements in the same conjugacy classes in this group" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 299 "conjclass:= proc(group) local g,gset,out,ccls,h;\n gset:=[op(group(set))];\n out :=NULL;\n while nops(gset)>0 do\n g:=gset[1];\n ccls:=[seq(grou p(mult)(h,group(mult)(g,group(inverse)(h))),\n h=group(set))];\n \+ out:=out,\{op(ccls)\};\n gset:=remove(x->member(x,ccls),gset);\n od;\n [out];\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "co njclass(S5);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "nops(%);" }} }{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 92 "Given a matrix representation retrurn a character consisting of a \+ group and a class function" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "rep2char:=proc(rep) local char;\n char(group):=rep(group);\n ch ar(classfunc):=g->trace(rep(hom)(g));\n char;\nend:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 151 "Given a m odule return a characacter consisting of a group and a class function. This\nshould be better than returning rep2char(module2matrep( module ))" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 185 "module2char:=proc(m odule) local char;\n char(group):=module(group);\n char(classfunc):= proc(g) local v;\n add(coeff(module(action)(g,v),v),\n v=modul e(basis));\n end;\n char;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 196 "blinform:=proc(cfunc1,cfunc2) local ordgrp, g;\n or dgrp:=nops(cfunc1(group)(set));\n add( cfunc1(classfunc)(g)*cfunc2(cl assfunc)\n (cfunc1(group)(inverse)(g)), g=cfunc1(group)(set))/ordgr p;\nend:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 27 "achar4:=module2 char(amod4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "achar4(grou p);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 24 "blinform(achar4,acha r4);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 33 "defchar4:=module2ch ar(defrep(4));" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "blinform( defchar4,defchar4);" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }} {PARA 0 "" 0 "" {TEXT -1 112 "The Reynolds operator of a character Chi is an operator which sends v to\n(Chi(e)/|G|)*sum_\{g in G\} Chi(g^\{ -1\}) g" }{TEXT -1 66 " v\nFor this we need the character\nthe module \+ action and a vector v" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 211 "r eynoldsop:=proc(char, module, vect) local g;\n add(char(classfunc)(ch ar(group)(inverse)(g))*module(action)(g,vect),\n g=module(group)(se t))\n *char(classfunc)(char(group)(ident))/nops(char(group)(set));\n end:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 130 "Create the restricted character given a character and a \+ subgroup of the character.\nThere isn't much to do except change the g roup." }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 114 "re strict:=proc(char, group) local nchar;\n nchar(group):=group;\n ncha r(classfunc):=char(classfunc);\n nchar;\nend:" }}}{EXCHG {PARA 0 "" 0 "" {MPLTEXT 0 21 0 "" }}{PARA 0 "" 0 "" {TEXT -1 115 "Create the ind uced character given a character and a group which contains the group \+ of\nthe character as a subgroup." }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 86 "cosets:=proc(H,G) local g,h;\n \{ seq( \{seq( G(mult)(g,h), h=H(set))\}, g=G(set))\};\nend:" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 92 "cosetreps:=proc(H,G) local g;\n csets:=map(x- >[op(x)],cosets(H,G));\n [seq(\n....NOT FINISHED" }}}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "7 21 0 0" 92 }{VIEWOPTS 1 1 0 1 1 1803 }