diff --git a/books/bookvol10.3.pamphlet b/books/bookvol10.3.pamphlet index 27d1d8a..3d9290d 100644 --- a/books/bookvol10.3.pamphlet +++ b/books/bookvol10.3.pamphlet @@ -99529,8 +99529,104 @@ Permutation(S:SetCategory): public == private where )set message auto off )clear all ---S 1 of 1 -)show PermutationGroup +--S 1 of 68 +x : PERM INT := [[1,3,5],[7,11,9]] +--R +--R +--R (1) (1 3 5)(7 11 9) +--R Type: Permutation(Integer) +--E 1 + +--S 2 of 68 +y : PERM INT := [[3,5,7,9]] +--R +--R +--R (2) (3 5 7 9) +--R Type: Permutation(Integer) +--E 2 + +--S 3 of 68 +z : PERM INT := [1,3,11] +--R +--R +--R (3) (1 3 11) +--R Type: Permutation(Integer) +--E 3 + +--S 4 of 68 +g1 : PERMGRP INT := [ x , y ] +--R +--R +--R (4) <(1 3 5)(7 11 9),(3 5 7 9)> +--R Type: PermutationGroup(Integer) +--E 4 + +--S 5 of 68 +g2 : PERMGRP INT := [ x , z ] +--R +--R +--R (5) <(1 3 5)(7 11 9),(1 3 11)> +--R Type: PermutationGroup(Integer) +--E 5 + +--S 6 of 68 +g3 : PERMGRP INT := [ y , z ] +--R +--R +--R (6) <(3 5 7 9),(1 3 11)> +--R Type: PermutationGroup(Integer) +--E 6 + +--S 7 of 68 +order g1 +--R +--R +--R (7) 720 +--R Type: PositiveInteger +--E 7 + +--S 8 of 68 +degree g3 +--R +--R +--R (8) 6 +--R Type: PositiveInteger +--E 8 + +--S 9 of 68 +movedPoints g2 +--R +--R +--R (9) {1,3,5,7,9,11} +--R Type: Set(Integer) +--E 9 + +--S 10 of 68 +orbit (g1, 3) +--R +--R +--R (10) {1,3,5,7,9,11} +--R Type: Set(Integer) +--E 10 + +--S 11 of 68 +orbits g3 +--R +--R +--R (11) {{1,3,5,7,9,11}} +--R Type: Set(Set(Integer)) +--E 11 + +--S 12 of 68 +member? ( y , g2 ) +--R +--R +--R (12) false +--R Type: Boolean +--E 12 + +--S 13 of 68 +)sh PERMGRP --R --R PermutationGroup(S: SetCategory) is a domain constructor --R Abbreviation for PermutationGroup is PERMGRP @@ -99561,27 +99657,1031 @@ Permutation(S:SetCategory): public == private where --R wordInStrongGenerators : (Permutation(S),%) -> List(NonNegativeInteger) --R wordsForStrongGenerators : % -> List(List(NonNegativeInteger)) --R ---E 1 +--E 13 + +)spool +)lisp (bye) +\end{chunk} +\begin{chunk}{PermutationGroup.help} +==================================================================== +PermutationGroup examples +==================================================================== + +PermutationGroup implements permutation groups acting on a set S, +i.e. all subgroups of the symmetric group of S, represented as a list +of permutations (generators). Note that therefore the objects are not +members of the Axiom category Group. + +Using the idea of base and strong generators by Sims, basic routines +and algorithms are implemented so that the word problem for permutation +groups can be solved. + + x : PERM INT := [[1,3,5],[7,11,9]] + + (1 3 5)(7 11 9) + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + z : PERM INT := [1,3,11] + + (1 3 11) + + g1 : PERMGRP INT := [ x , y ] + + <(1 3 5)(7 11 9),(3 5 7 9)> + + g2 : PERMGRP INT := [ x , z ] + + <(1 3 5)(7 11 9),(1 3 11)> + + g3 : PERMGRP INT := [ y , z ] + + <(3 5 7 9),(1 3 11)> + + order g1 + + 720 + + degree g3 + + 6 + + movedPoints g2 + + {1,3,5,7,9,11} + + orbit (g1, 3) + + {1,3,5,7,9,11} + + orbits g3 + + {{1,3,5,7,9,11}} + + member? ( y , g2 ) + + false + +See Also: +o )show PermutationGroup +o )help coerce +o )help generators +o )help elt +o )help random +o )help order +o )help degree +o )help base +o )help wordsForStrongGenerators +o )help permutationGroup +o )help orbit +o )help orbits +o )help member? +o )help wordInStrongGenerators +o )help wordInGenerators +o )help movedPoints +o )help initializeGroupForWordProblem + +\end{chunk} + +\begin{chunk}{coerce.help} +==================================================================== +coerce from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + coerce + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + coerce : % -> List Permutation SetCategory + coerce : List Permutation SetCategory -> % + +DESCRIPTION +=========== + + coerce : % -> List Permutation SetCategory + + coerce(gp) returns the generators of the group gp. + + coerce : List Permutation SetCategory -> % + + coerce(ls) coerces a list of permutations ls to the group + generated by this list. + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + x : PERM INT := [[1,3,5],[7,11,9]] + + (1 3 5)(7 11 9) + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + z : PERM INT := [1,3,11] + + (1 3 11) + + g1 : PERMGRP INT := [ x , y ] + + <(1 3 5)(7 11 9),(3 5 7 9)> + + g2 : PERMGRP INT := [ x , z ] + + <(1 3 5)(7 11 9),(1 3 11)> + + g3 : PERMGRP INT := [ y , z ] + + <(3 5 7 9),(1 3 11)> + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op coerce + +\end{chunk} + +\begin{chunk}{generators.help} +==================================================================== +generators from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + generators + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + generators : % -> List Permuation SetCategory + + generators(gp) returns the generators of the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op generators + +\end{chunk} + +\begin{chunk}{elt.help} +==================================================================== +elt from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + elt + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + elt : (%,NonNegativeInteger) -> Permutation SetCategory + + elt(gp,i) returns the i-th generator of the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op elt + +\end{chunk} + +\begin{chunk}{random.help} +==================================================================== +random from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + random + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + random : (%,Integer) -> Permutation SetCategory + + random(gp,i) returns a random product of maximal i generators + of the group gp. + + random : % -> Permutation SetCategory + + random(gp) returns a random product of maximal 20 generators + of the group gp. + Note: random(gp)=random(gp,20). + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op random + +\end{chunk} + +\begin{chunk}{order.help} +==================================================================== +order from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + order + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + order : % -> NonNegativeInteger + + order(gp) returns the order of the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + x : PERM INT := [[1,3,5],[7,11,9]] + + (1 3 5)(7 11 9) + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + g : PERMGRP INT := [ x , y ] + + <(1 3 5)(7 11 9),(3 5 7 9)> + + order g + + 720 + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op order + +\end{chunk} + +\begin{chunk}{degree.help} +==================================================================== +degree from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + degree + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + degree : % -> NonNegativeInteger + + degree(gp) returns the number of points moved by all permutations + of the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + z : PERM INT := [1,3,11] + + (1 3 11) + + g : PERMGRP INT := [ y , z ] + + <(3 5 7 9),(1 3 11)> + + degree g + + 6 + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op degree + +\end{chunk} + +\begin{chunk}{base.help} +==================================================================== +base from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + base + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + base : % -> List SetCategory + + base(gp) returns a base for the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op base + +\end{chunk} + +\begin{chunk}{wordsForStrongGenerators.help} +==================================================================== +wordsForStrongGenerators from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + wordsForStrongGenerators + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + wordsForStrongGenerators : % -> List List NonNegativeInteger + + wordsForStrongGenerators(gp) returns the words for the strong + generators of the group gp in the original generators of + gp, represented by their indices in the list, given by + generators. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op wordsForStrongGenerators + +\end{chunk} + +\begin{chunk}{permutationGroup.help} +==================================================================== +permutationGroup from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + permutationGroup + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + permutationGroup : List Permutation SetCategory -> % + + permutationGroup(ls) coerces a list of permutations ls to + the group generated by this list. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op permutationGroup + +\end{chunk} + +\begin{chunk}{orbit.help} +==================================================================== +orbit from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + orbit + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + orbit : (%,SetCategory) -> Set SetCategory + + orbit(gp,el) returns the orbit of the element el under the + group gp, i.e. the set of all points gained by applying + each group element to el. + + orbit : (%,Set SetCategory)-> Set Set SetCategory + + orbit(gp,els) returns the orbit of the unordered + set els under the group gp. + + orbit : (%,List SetCategory) -> Set List SetCategory + + orbit(gp,ls) returns the orbit of the ordered + list ls under the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + x : PERM INT := [[1,3,5],[7,11,9]] + + (1 3 5)(7 11 9) + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + g : PERMGRP INT := [ x , y ] + + <(1 3 5)(7 11 9),(3 5 7 9)> + + orbit(g, 3) + + {1,3,5,7,9,11} + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op orbit + +\end{chunk} + +\begin{chunk}{orbits.help} +==================================================================== +orbits from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + orbits + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + orbits : % -> Set Set SetCategory + + orbits(gp) returns the orbits of the group gp, i.e. + it partitions the (finite) of all moved points. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + z : PERM INT := [1,3,11] + + (1 3 11) + + g : PERMGRP INT := [ y , z ] + + <(3 5 7 9),(1 3 11)> + + orbits g + + {{1,3,5,7,9,11}} + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op orbits + +\end{chunk} + +\begin{chunk}{member?.help} +==================================================================== +member? from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + member? + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + member? : (Permutation Set, %)-> Boolean + + member?(pp,gp) answers the question, whether the + permutation pp is in the group gp or not. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + x : PERM INT := [[1,3,5],[7,11,9]] + + (1 3 5)(7 11 9) + + y : PERM INT := [[3,5,7,9]] + + (3 5 7 9) + + z : PERM INT := [1,3,11] + + (1 3 11) + + g : PERMGRP INT := [ x , z ] + + <(1 3 5)(7 11 9),(1 3 11)> + + member? ( y , g ) + + false + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op member -)spool -)lisp (bye) \end{chunk} -\begin{chunk}{PermutationGroup.help} + +\begin{chunk}{wordInStrongGenerators.help} ==================================================================== -PermutationGroup examples +wordInStrongGenerators from PermutationGroup (PERMGRP) ==================================================================== -PermutationGroup implements permutation groups acting on a set S, -i.e. all subgroups of the symmetric group of S, represented as a list -of permutations (generators). Note that therefore the objects are not -members of the Axiom category Group. +NAME +==== -Using the idea of base and strong generators by Sims, basic routines -and algorithms are implemented so that the word problem for permutation -groups can be solved. + wordInStrongGenerators + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + wordInStrongGenerators : (Permatation Set, %)-> List NonNegativeInteger + + wordInStrongGenerators(p,gp) returns the word for the + permutation p in the strong generators of the group gp, + represented by the indices of the list, given by strongGenerators. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op wordInStrongGenerators + +\end{chunk} + +\begin{chunk}{wordInGenerators.help} +==================================================================== +wordInGenerators from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + wordInGenerators + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + wordInGenerators : (Permutation Set, %)-> List NonNegativeInteger + + wordInGenerators(p,gp) returns the word for the permutation p + in the original generators of the group gp, + represented by the indices of the list, given by generators. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op wordInGenerators + +\end{chunk} + +\begin{chunk}{movedPoints.help} +==================================================================== +movedPoints from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + movedPoints + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + movedPoints : % -> Set SetCategory + + movedPoints(gp) returns the points moved by the group gp. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + + x : PERM INT := [[1,3,5],[7,11,9]] + + (1 3 5)(7 11 9) + + z : PERM INT := [1,3,11] + + (1 3 11) + + g : PERMGRP INT := [ x , z ] + + <(1 3 5)(7 11 9),(1 3 11)> + + movedPoints g + + {1,3,5,7,9,11} + +NOTES +===== + +REFERENCES +========== + +SEE ALSO +======== + +o )show PermutationGroup +o )d op movedPoints + +\end{chunk} + +\begin{chunk}{initializeGroupForWordProblem.help} +==================================================================== +initializeGroupForWordProblem from PermutationGroup (PERMGRP) +==================================================================== + +NAME +==== + + initializeGroupForWordProblem + +DOMAIN +====== + + PermutationGroup (PERMGRP) + +SYNOPSYS +======== + + initializeGroupForWordProblem : % -> Void + + initializeGroupForWordProblem(gp) initializes the group gp + for the word problem. + +DESCRIPTION +=========== + +ARGUMENTS +========= + +RETURN VALUE +============ + +EXAMPLES +======== + +NOTES +===== + + It calls the other function of this name with parameters + 0 and 1: initializeGroupForWordProblem(gp,0,1). + + (1) be careful: invoking this routine will destroy the + possibly information about your group (but will recompute it again) + + (2) users need not call this function normally for the soultion of + the word problem. + +REFERENCES +========== + +SEE ALSO +======== -See Also: o )show PermutationGroup +o )d op initializeGroupForWordProblem \end{chunk} @@ -99657,77 +100757,135 @@ PermutationGroup(S:SetCategory): public == private where public ==> SetCategory with - coerce : % -> L PERM S + coerce : % -> L PERM S ++ coerce(gp) returns the generators of the group gp. + ++ + ++X x : PERM INT := [[1,3,5],[7,11,9]] + + coerce : L PERM S -> % + ++ coerce(ls) coerces a list of permutations ls to the group + ++ generated by this list. + ++ + ++X y : PERM INT := [[3,5,7,9]] + ++X z : PERM INT := [1,3,11] + ++X g : PERMGRP INT := [ y , z ] + generators : % -> L PERM S ++ generators(gp) returns the generators of the group gp. + elt : (%,NNI) -> PERM S ++ elt(gp,i) returns the i-th generator of the group gp. + random : (%,I) -> PERM S ++ random(gp,i) returns a random product of maximal i generators ++ of the group gp. + random : % -> PERM S ++ random(gp) returns a random product of maximal 20 generators ++ of the group gp. ++ Note: random(gp)=random(gp,20). + order : % -> NNI ++ order(gp) returns the order of the group gp. + ++ + ++X x : PERM INT := [[1,3,5],[7,11,9]] + ++X y : PERM INT := [[3,5,7,9]] + ++X g : PERMGRP INT := [ x , y ] + ++X order g + degree : % -> NNI ++ degree(gp) returns the number of points moved by all permutations ++ of the group gp. + ++ + ++X y : PERM INT := [[3,5,7,9]] + ++X z : PERM INT := [1,3,11] + ++X g : PERMGRP INT := [ y , z ] + ++X degree g + base : % -> L S ++ base(gp) returns a base for the group gp. + strongGenerators : % -> L PERM S ++ strongGenerators(gp) returns strong generators for ++ the group gp. + wordsForStrongGenerators : % -> L L NNI ++ wordsForStrongGenerators(gp) returns the words for the strong ++ generators of the group gp in the original generators of ++ gp, represented by their indices in the list, given by ++ generators. - coerce : L PERM S -> % - ++ coerce(ls) coerces a list of permutations ls to the group - ++ generated by this list. + permutationGroup : L PERM S -> % ++ permutationGroup(ls) coerces a list of permutations ls to ++ the group generated by this list. + orbit : (%,S) -> FSET S ++ orbit(gp,el) returns the orbit of the element el under the ++ group gp, i.e. the set of all points gained by applying ++ each group element to el. - orbits : % -> FSET FSET S - ++ orbits(gp) returns the orbits of the group gp, i.e. - ++ it partitions the (finite) of all moved points. + orbit : (%,FSET S)-> FSET FSET S ++ orbit(gp,els) returns the orbit of the unordered ++ set els under the group gp. + orbit : (%,L S) -> FSET L S ++ orbit(gp,ls) returns the orbit of the ordered ++ list ls under the group gp. ++ Note: return type is L L S temporarily because FSET L S has an error. - -- (GILT DAS NOCH?) + ++ + ++X x : PERM INT := [[1,3,5],[7,11,9]] + ++X y : PERM INT := [[3,5,7,9]] + ++X g : PERMGRP INT := [ x , y ] + ++X orbit(g, 3) + + orbits : % -> FSET FSET S + ++ orbits(gp) returns the orbits of the group gp, i.e. + ++ it partitions the (finite) of all moved points. + ++ + ++X y : PERM INT := [[3,5,7,9]] + ++X z : PERM INT := [1,3,11] + ++X g : PERMGRP INT := [ y , z ] + ++X orbits g + member? : (PERM S, %)-> B ++ member?(pp,gp) answers the question, whether the ++ permutation pp is in the group gp or not. + ++ + ++X x : PERM INT := [[1,3,5],[7,11,9]] + ++X y : PERM INT := [[3,5,7,9]] + ++X z : PERM INT := [1,3,11] + ++X g : PERMGRP INT := [ x , z ] + ++X member? ( y , g ) + wordInStrongGenerators : (PERM S, %)-> L NNI ++ wordInStrongGenerators(p,gp) returns the word for the ++ permutation p in the strong generators of the group gp, ++ represented by the indices of the list, given by strongGenerators. + wordInGenerators : (PERM S, %)-> L NNI ++ wordInGenerators(p,gp) returns the word for the permutation p ++ in the original generators of the group gp, ++ represented by the indices of the list, given by generators. + movedPoints : % -> FSET S ++ movedPoints(gp) returns the points moved by the group gp. + ++ + ++X x : PERM INT := [[1,3,5],[7,11,9]] + ++X z : PERM INT := [1,3,11] + ++X g : PERMGRP INT := [ x , z ] + ++X movedPoints g + "<" : (%,%) -> B ++ gp1 < gp2 returns true if and only if gp1 ++ is a proper subgroup of gp2. + "<=" : (%,%) -> B ++ gp1 <= gp2 returns true if and only if gp1 ++ is a subgroup of gp2. ++ Note: because of a bug in the parser you have to call this ++ function explicitly by gp1 <=$(PERMGRP S) gp2. -- (GILT DAS NOCH?) + initializeGroupForWordProblem : % -> Void ++ initializeGroupForWordProblem(gp) initializes the group gp ++ for the word problem. @@ -99737,6 +100895,7 @@ PermutationGroup(S:SetCategory): public == private where ++ possibly information about your group (but will recompute it again) ++ (2) users need not call this function normally for the soultion of ++ the word problem. + initializeGroupForWordProblem :(%,I,I) -> Void ++ initializeGroupForWordProblem(gp,m,n) initializes the group ++ gp for the word problem. diff --git a/books/bookvolbib.pamphlet b/books/bookvolbib.pamphlet index c417014..2783275 100644 --- a/books/bookvolbib.pamphlet +++ b/books/bookvolbib.pamphlet @@ -22,6 +22,22 @@ paragraph for those unfamiliar with the terms. \section{Algebra Documentation References} +\index{Sims, Charles} +\begin{chunk}{axiom.bib} +@article{Sims71, + author = "Sims, Charles", + title = "Determining the Conjugacy Classes of a Permutation Group", + journal = "Computers in Algebra and Number Theory, SIAM-AMS Proc.", + volume = "4", + publisher = "American Math. Soc.", + year = "1991", + pages = "191--195", + comment = "documentation for PermutationGroup" + +} + +\end{chunk} + \index{W\"orz-Busekros, A.} \begin{chunk}{axiom.bib} @article{Worz80, @@ -15201,15 +15217,6 @@ Mathematics and Computers in Simulation 42 pp 509-528 (1996) \end{chunk} -\index{Sims, Charles} -\begin{chunk}{ignore} -\bibitem[Sims 71]{Sims71} Sims, C. - title = "Determining the Conjugacy Classes of a Permutation Group", -Computers in Algebra and Number Theory, SIAM-AMS Proc., Vol. 4, -American Math. Soc., 1991, pp191-195 - -\end{chunk} - \index{Singer, Michael F.} \begin{chunk}{ignore} \bibitem[Singer 89]{Sing89} Singer, M.F. diff --git a/changelog b/changelog index 2fee24c..19e879d 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,5 @@ +20141117 tpd src/axiom-website/patches.html 20141117.02.tpd.patch +20141117 tpd books/bookvol10.3 help files for PermutationGroup 20141117 tpd src/axiom-website/patches.html 20141117.01.tpd.patch 20141117 tpd books/bookvol5 newHelpSpad2Cmd now recognizes )help abbreviations 20141116 tpd src/axiom-website/patches.html 20141116.03.tpd.patch diff --git a/patch b/patch index 18a0aec..8f086ad 100644 --- a/patch +++ b/patch @@ -1,5 +1,8 @@ -books/bookvol5 newHelpSpad2Cmd now recognizes )help abbreviations +books/bookvol10.3 help files for PermutationGroup The )help command now recognizes - )help Integer - )help INT + )help PermutationGroup -- the constructor name + )help PERMGRP -- the abbreviation + )help order -- the function implementations from PERMGRP +all of which open in an edit window + diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 05ef12e..154893b 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -4708,6 +4708,8 @@ books/bookvol10.3 help file for AlgebraGivenByStructuralConstants
src/input/Makefile remove gonshor.input
20141117.01.tpd.patch books/bookvol5 newHelpSpad2Cmd now recognizes )help abbreviations
+20141117.02.tpd.patch +books/bookvol10.3 help files for PermutationGroup
diff --git a/src/input/grpthry.input.pamphlet b/src/input/grpthry.input.pamphlet index 194723d..39c5457 100644 --- a/src/input/grpthry.input.pamphlet +++ b/src/input/grpthry.input.pamphlet @@ -21,156 +21,24 @@ )set message auto off )clear all ---S 1 of 68 -x : PERM INT := [[1,3,5],[7,11,9]] ---R ---R ---R (1) (1 3 5)(7 11 9) ---R Type: Permutation(Integer) ---E 1 - ---S 2 of 68 -y : PERM INT := [[3,5,7,9]] ---R ---R ---R (2) (3 5 7 9) ---R Type: Permutation(Integer) ---E 2 - ---S 3 of 68 -z : PERM INT := [1,3,11] ---R ---R ---R (3) (1 3 11) ---R Type: Permutation(Integer) ---E 3 - ---S 4 of 68 -g1 : PERMGRP INT := [ x , y ] ---R ---R ---R (4) <(1 3 5)(7 11 9),(3 5 7 9)> ---R Type: PermutationGroup(Integer) ---E 4 - ---S 5 of 68 -g2 : PERMGRP INT := [ x , z ] ---R ---R ---R (5) <(1 3 5)(7 11 9),(1 3 11)> ---R Type: PermutationGroup(Integer) ---E 5 - ---S 6 of 68 -g3 : PERMGRP INT := [ y , z ] ---R ---R ---R (6) <(3 5 7 9),(1 3 11)> ---R Type: PermutationGroup(Integer) ---E 6 - ---S 7 of 68 -order g1 ---R ---R ---R (7) 720 ---R Type: PositiveInteger ---E 7 - ---S 8 of 68 -degree g3 ---R ---R ---R (8) 6 ---R Type: PositiveInteger ---E 8 - ---S 9 of 68 -movedPoints g2 ---R ---R ---R (9) {1,3,5,7,9,11} ---R Type: Set(Integer) ---E 9 - ---S 10 of 68 -orbit (g1, 3) ---R ---R ---R (10) {1,3,5,7,9,11} ---R Type: Set(Integer) ---E 10 - ---S 11 of 68 -orbits g3 ---R ---R ---R (11) {{1,3,5,7,9,11}} ---R Type: Set(Set(Integer)) ---E 11 - ---S 12 of 68 -member? ( y , g2 ) ---R ---R ---R (12) false ---R Type: Boolean ---E 12 - ---S 13 of 68 -)sh PERMGRP ---R ---R PermutationGroup(S: SetCategory) is a domain constructor ---R Abbreviation for PermutationGroup is PERMGRP ---R This constructor is exposed in this frame. ---R Issue )edit bookvol10.3.pamphlet to see algebra source code for PERMGRP ---R ---R------------------------------- Operations -------------------------------- ---R ? Boolean ?<=? : (%,%) -> Boolean ---R ?=? : (%,%) -> Boolean base : % -> List(S) ---R coerce : % -> OutputForm degree : % -> NonNegativeInteger ---R hash : % -> SingleInteger latex : % -> String ---R movedPoints : % -> Set(S) orbit : (%,Set(S)) -> Set(Set(S)) ---R orbit : (%,S) -> Set(S) orbits : % -> Set(Set(S)) ---R order : % -> NonNegativeInteger random : % -> Permutation(S) ---R ?~=? : (%,%) -> Boolean ---R coerce : List(Permutation(S)) -> % ---R coerce : % -> List(Permutation(S)) ---R ?.? : (%,NonNegativeInteger) -> Permutation(S) ---R generators : % -> List(Permutation(S)) ---R initializeGroupForWordProblem : (%,Integer,Integer) -> Void ---R initializeGroupForWordProblem : % -> Void ---R member? : (Permutation(S),%) -> Boolean ---R orbit : (%,List(S)) -> Set(List(S)) ---R permutationGroup : List(Permutation(S)) -> % ---R random : (%,Integer) -> Permutation(S) ---R strongGenerators : % -> List(Permutation(S)) ---R wordInGenerators : (Permutation(S),%) -> List(NonNegativeInteger) ---R wordInStrongGenerators : (Permutation(S),%) -> List(NonNegativeInteger) ---R wordsForStrongGenerators : % -> List(List(NonNegativeInteger)) ---R ---E 13 - -)clear all - ---S 14 of 68 +--S 1 of 55 ptn9 := partitions 9 --R --R --R (1) --R [[9],[8,1],[7,2],[7,1,1],[6,3],[6,2,1],[6,1,1,1],[5,4],[5,3,1],[5,2,2],...] --R Type: Stream(List(Integer)) ---E 14 +--E 1 ---S 15 of 68 +--S 2 of 55 map(dimensionOfIrreducibleRepresentation, ptn9) --R --R --R (2) [1,8,27,28,48,105,56,42,162,120,...] --R Type: Stream(NonNegativeInteger) ---E 15 +--E 2 ---S 16 of 68 +--S 3 of 55 yt := listYoungTableaus [4,2] --R --R @@ -182,9 +50,9 @@ yt := listYoungTableaus [4,2] --R | |, | |, | |, | |] --R +2 5 0 0+ +3 4 0 0+ +3 5 0 0+ +4 5 0 0+ --R Type: List(Matrix(Integer)) ---E 16 +--E 3 ---S 17 of 68 +--S 4 of 55 r1 := irreducibleRepresentation([4,2],[1,2,4,5,3,6]) --R --R @@ -206,9 +74,9 @@ r1 := irreducibleRepresentation([4,2],[1,2,4,5,3,6]) --R | | --R + 0 0 0 1 0 0 0 0 0 + --R Type: Matrix(Integer) ---E 17 +--E 4 ---S 18 of 68 +--S 5 of 55 r2 := irreducibleRepresentation([4,2],[3,2,1,5,6,4]) --R --R @@ -230,9 +98,9 @@ r2 := irreducibleRepresentation([4,2],[3,2,1,5,6,4]) --R | | --R + 0 - 1 0 0 - 1 0 - 1 0 0 + --R Type: Matrix(Integer) ---E 18 +--E 5 ---S 19 of 68 +--S 6 of 55 r3 := irreducibleRepresentation([4,2],[4,2,1,3,6,5]) --R --R @@ -254,17 +122,17 @@ r3 := irreducibleRepresentation([4,2],[4,2,1,3,6,5]) --R | | --R +0 0 0 0 0 1 0 0 0 + --R Type: Matrix(Integer) ---E 19 +--E 6 ---S 20 of 68 +--S 7 of 55 (r3 = r1*r2) :: Boolean --R --R --R (7) false --R Type: Boolean ---E 20 +--E 7 ---S 21 of 68 +--S 8 of 55 irreducibleRepresentation [4,4,1] --R --R @@ -1284,11 +1152,11 @@ irreducibleRepresentation [4,4,1] --R ] --R ] --R Type: List(Matrix(Integer)) ---E 21 +--E 8 )clear all ---S 22 of 68 +--S 9 of 55 permutationRepresentation [2,3,1,4,6,5,11,10,7,8,9] --R --R @@ -1314,9 +1182,9 @@ permutationRepresentation [2,3,1,4,6,5,11,10,7,8,9] --R | | --R +0 0 0 0 0 0 1 0 0 0 0+ --R Type: Matrix(Integer) ---E 22 +--E 9 ---S 23 of 68 +--S 10 of 55 gm2 := createGenericMatrix 2 --R --R @@ -1326,9 +1194,9 @@ gm2 := createGenericMatrix 2 --R |x x | --R + 2,1 2,2+ --R Type: Matrix(Polynomial(Integer)) ---E 23 +--E 10 ---S 24 of 68 +--S 11 of 55 symmetricTensors (gm2,2) --R --R @@ -1343,9 +1211,9 @@ symmetricTensors (gm2,2) --R |2x x 2x x x x + x x | --R + 1,1 2,1 1,2 2,2 1,1 2,2 1,2 2,1+ --R Type: Matrix(Polynomial(Integer)) ---E 24 +--E 11 ---S 25 of 68 +--S 12 of 55 gm3 := createGenericMatrix 3 --R --R @@ -1358,9 +1226,9 @@ gm3 := createGenericMatrix 3 --R |x x x | --R + 3,1 3,2 3,3+ --R Type: Matrix(Polynomial(Integer)) ---E 25 +--E 12 ---S 26 of 68 +--S 13 of 55 antisymmetricTensors (gm3,2) --R --R @@ -1373,9 +1241,9 @@ antisymmetricTensors (gm3,2) --R |x x - x x x x - x x x x - x x | --R + 2,1 3,2 2,2 3,1 2,1 3,3 2,3 3,1 2,2 3,3 2,3 3,2+ --R Type: Matrix(Polynomial(Integer)) ---E 26 +--E 13 ---S 27 of 68 +--S 14 of 55 tensorProduct(gm2,gm2) --R --R @@ -1393,9 +1261,9 @@ tensorProduct(gm2,gm2) --R | x x x x x x | --R + 2,1 2,1 2,2 2,1 2,2 2,2 + --R Type: Matrix(Polynomial(Integer)) ---E 27 +--E 14 ---S 28 of 68 +--S 15 of 55 )sh REP1 --R --R RepresentationPackage1(R: Ring) is a package constructor @@ -1418,18 +1286,18 @@ tensorProduct(gm2,gm2) --R tensorProduct : Matrix(R) -> Matrix(R) --R tensorProduct : List(Matrix(R)) -> List(Matrix(R)) --R ---E 28 +--E 15 )clear all ---S 29 of 68 +--S 16 of 55 r0 := irreducibleRepresentation [2,2,2,1,1]; --R --R --R Type: List(Matrix(Integer)) ---E 29 +--E 16 ---S 30 of 68 +--S 17 of 55 r28 := meatAxe (r0::(LIST MATRIX PF 2)) --R --R Fingerprint element in generated algebra is singular @@ -1552,9 +1420,9 @@ r28 := meatAxe (r0::(LIST MATRIX PF 2)) --R +0 1 1 1 1 0 0 0 1 1 1 1 1 1+ --R ] --R Type: List(List(Matrix(PrimeField(2)))) ---E 30 +--E 17 ---S 31 of 68 +--S 18 of 55 areEquivalent? (r28.1, r28.2) --R --R Dimensions of kernels differ @@ -1563,9 +1431,9 @@ areEquivalent? (r28.1, r28.2) --R --R (3) [0] --R Type: Matrix(PrimeField(2)) ---E 31 +--E 18 ---S 32 of 68 +--S 19 of 55 meatAxe r28.2 --R --R Fingerprint element in generated algebra is non-singular @@ -1638,9 +1506,9 @@ meatAxe r28.2 --R +0 1 0 1 1 0 0 0 0 1 1 0 1 1+ --R ] --R Type: List(List(Matrix(PrimeField(2)))) ---E 32 +--E 19 ---S 33 of 68 random generation, FAILURE OK. +--S 20 of 55 random generation, FAILURE OK. isAbsolutelyIrreducible? r28.2 --R --R Random element in generated algebra does @@ -1659,9 +1527,9 @@ isAbsolutelyIrreducible? r28.2 --R --R (5) true --R Type: Boolean ---E 33 +--E 20 ---S 34 of 68 +--S 21 of 55 ma := meatAxe r28.1 --R --R Fingerprint element in generated algebra is singular @@ -1699,9 +1567,9 @@ ma := meatAxe r28.1 --R | | | | --R +1 1 1 0 0 0+ +0 1 1 1 0 1+ --R Type: List(List(Matrix(PrimeField(2)))) ---E 34 +--E 21 ---S 35 of 68 random generation, FAILURE OK. +--S 22 of 55 random generation, FAILURE OK. isAbsolutelyIrreducible? ma.1 --R --R Random element in generated algebra does @@ -1718,9 +1586,9 @@ isAbsolutelyIrreducible? ma.1 --R --R (7) true --R Type: Boolean ---E 35 +--E 22 ---S 36 of 68 +--S 23 of 55 isAbsolutelyIrreducible? ma.2 --R --R Random element in generated algebra has @@ -1733,91 +1601,91 @@ isAbsolutelyIrreducible? ma.2 --R --R (8) true --R Type: Boolean ---E 36 +--E 23 )clear all ---S 37 of 68 +--S 24 of 55 px : PERM PF 29 := cycles [[1,3,5],[7,11,9]] --R --R --R (1) (1 3 5)(7 11 9) --R Type: Permutation(PrimeField(29)) ---E 37 +--E 24 ---S 38 of 68 +--S 25 of 55 py : PERM PF 29 := cycles [[3,5,7,9]] --R --R --R (2) (3 5 7 9) --R Type: Permutation(PrimeField(29)) ---E 38 +--E 25 ---S 39 of 68 +--S 26 of 55 pz : PERM PF 29 := cycle [1,3,11] --R --R --R (3) (1 3 11) --R Type: Permutation(PrimeField(29)) ---E 39 +--E 26 ---S 40 of 68 +--S 27 of 55 px * pz --R --R --R (4) (1 5)(3 9 7 11) --R Type: Permutation(PrimeField(29)) ---E 40 +--E 27 ---S 41 of 68 +--S 28 of 55 py ** 3 --R --R --R (5) (3 9 7 5) --R Type: Permutation(PrimeField(29)) ---E 41 +--E 28 ---S 42 of 68 +--S 29 of 55 inv px --R --R --R (6) (1 5 3)(7 9 11) --R Type: Permutation(PrimeField(29)) ---E 42 +--E 29 ---S 43 of 68 +--S 30 of 55 order px --R --R --R (7) 3 --R Type: PositiveInteger ---E 43 +--E 30 ---S 44 of 68 +--S 31 of 55 movedPoints py --R --R --R (8) {3,5,7,9} --R Type: Set(PrimeField(29)) ---E 44 +--E 31 ---S 45 of 68 +--S 32 of 55 orbit ( pz , 3 ) --R --R --R (9) {3,11,1} --R Type: Set(PrimeField(29)) ---E 45 +--E 32 ---S 46 of 68 +--S 33 of 55 eval ( py , 7 ) --R --R --R (10) 9 --R Type: PrimeField(29) ---E 46 +--E 33 ---S 47 of 68 +--S 34 of 55 )sh PERM --R --R Permutation(S: SetCategory) is a domain constructor @@ -1857,19 +1725,19 @@ eval ( py , 7 ) --R min : (%,%) -> % if S has FINITE or S has ORDSET --R numberOfCycles : % -> NonNegativeInteger --R ---E 47 +--E 34 )clear all ---S 48 of 68 +--S 35 of 55 genA6 : List PERM INT := [cycle [1,2,3],cycle [2,3,4,5,6]] --R --R --R (1) [(1 2 3),(2 3 4 5 6)] --R Type: List(Permutation(Integer)) ---E 48 +--E 35 ---S 49 of 68 +--S 36 of 55 pRA6 := permutationRepresentation (genA6,6) --R --R @@ -1885,9 +1753,9 @@ pRA6 := permutationRepresentation (genA6,6) --R | | | | --R +0 0 0 0 0 1+ +0 0 0 0 1 0+ --R Type: List(Matrix(Integer)) ---E 49 +--E 36 ---S 50 of 68 +--S 37 of 55 sp0 := meatAxe (pRA6::(List Matrix PF 2)) --R --R Fingerprint element in generated algebra is singular @@ -1906,9 +1774,9 @@ sp0 := meatAxe (pRA6::(List Matrix PF 2)) --R | | | | --R +0 0 0 0 1+ +0 0 0 1 0+ --R Type: List(List(Matrix(PrimeField(2)))) ---E 50 +--E 37 ---S 51 of 68 +--S 38 of 55 sp1 := meatAxe sp0.1 --R --R Fingerprint element in generated algebra is singular @@ -1932,9 +1800,9 @@ sp1 := meatAxe sp0.1 --R | | | | --R +0 0 0 1+ +1 1 1 1+ --R Type: List(List(Matrix(PrimeField(2)))) ---E 51 +--E 38 ---S 52 of 68 random generation, FAILURE OK. +--S 39 of 55 random generation, FAILURE OK. isAbsolutelyIrreducible? sp1.2 --R --R Random element in generated algebra has @@ -1947,9 +1815,9 @@ isAbsolutelyIrreducible? sp1.2 --R --I (5) true --R Type: Boolean ---E 52 +--E 39 ---S 53 of 68 +--S 40 of 55 d2211 := irreducibleRepresentation ([2,2,1,1],genA6) --R --R @@ -1972,9 +1840,9 @@ d2211 := irreducibleRepresentation ([2,2,1,1],genA6) --R | | | | --R +0 0 0 0 0 1 0 0 0 + + 0 0 0 - 1 0 0 - 1 0 0+ --R Type: List(Matrix(Integer)) ---E 53 +--E 40 ---S 54 of 68 +--S 41 of 55 d2211m2 := (d2211::(List Matrix PF 2)); sp2 := meatAxe d2211m2 --R --R Fingerprint element in generated algebra is singular @@ -1993,9 +1861,9 @@ d2211m2 := (d2211::(List Matrix PF 2)); sp2 := meatAxe d2211m2 --R +0 1 0 0+ +0 1 0 1+ | | | | --R +0 1 1 1 0+ +1 0 0 1 1+ --R Type: List(List(Matrix(PrimeField(2)))) ---E 54 +--E 41 ---S 55 of 68 random generation, FAILURE OK. +--S 42 of 55 random generation, FAILURE OK. isAbsolutelyIrreducible? sp2.1 --R --R Random element in generated algebra has @@ -2008,9 +1876,9 @@ isAbsolutelyIrreducible? sp2.1 --R --R (8) true --R Type: Boolean ---E 55 +--E 42 ---S 56 of 68 random generation, FAILURE OK. +--S 43 of 55 random generation, FAILURE OK. areEquivalent? (sp2.1, sp1.2) --R --R Random element in generated algebra does @@ -2023,9 +1891,9 @@ areEquivalent? (sp2.1, sp1.2) --R --R (9) [0] --R Type: Matrix(PrimeField(2)) ---E 56 +--E 43 ---S 57 of 68 +--S 44 of 55 dA6d16 := tensorProduct(sp2.1,sp1.2); meatAxe dA6d16 --R --R Fingerprint element in generated algebra is non-singular @@ -2123,9 +1991,9 @@ dA6d16 := tensorProduct(sp2.1,sp1.2); meatAxe dA6d16 --R +0 0 0 0 1 1 0 1 1 1 0 1 1 1 0 1+ --R ] --R Type: List(List(Matrix(PrimeField(2)))) ---E 57 +--E 44 ---S 58 of 68 +--S 45 of 55 isAbsolutelyIrreducible? dA6d16 --R --R Random element in generated algebra does @@ -2183,9 +2051,9 @@ isAbsolutelyIrreducible? dA6d16 --R --R (11) false --R Type: Boolean ---E 58 +--E 45 ---S 59 of 68 +--S 46 of 55 sp3 := meatAxe (dA6d16 :: (List Matrix FF(2,2))) --R --R Fingerprint element in generated algebra is non-singular @@ -2280,9 +2148,9 @@ sp3 := meatAxe (dA6d16 :: (List Matrix FF(2,2))) --R + %A %A %A + 1 %A + 1 %A %A 0 1 + --R ] --R Type: List(List(Matrix(FiniteField(2,2)))) ---E 59 +--E 46 ---S 60 of 68 random generation, FAILURE OK. +--S 47 of 55 random generation, FAILURE OK. isAbsolutelyIrreducible? sp3.1 --R --R Random element in generated algebra does @@ -2309,9 +2177,9 @@ isAbsolutelyIrreducible? sp3.1 --R --R (13) true --R Type: Boolean ---E 60 +--E 47 ---S 61 of 68 random generation, FAILURE OK. +--S 48 of 55 random generation, FAILURE OK. isAbsolutelyIrreducible? sp3.2 --R --R Random element in generated algebra does @@ -2330,9 +2198,9 @@ isAbsolutelyIrreducible? sp3.2 --R --R (14) true --R Type: Boolean ---E 61 +--E 48 ---S 62 of 68 random generation, FAILURE OK. +--S 49 of 55 random generation, FAILURE OK. areEquivalent? (sp3.1,sp3.2) --R --R Random element in generated algebra does @@ -2358,17 +2226,17 @@ areEquivalent? (sp3.1,sp3.2) --R --R (15) [0] --R Type: Matrix(FiniteField(2,2)) ---E 62 +--E 49 ---S 63 of 68 +--S 50 of 55 sp0.2 --R --R --R (16) [[1],[1]] --R Type: List(Matrix(PrimeField(2))) ---E 63 +--E 50 ---S 64 of 68 +--S 51 of 55 sp1.2 --R --R @@ -2380,9 +2248,9 @@ sp1.2 --R | | | | --R +0 0 0 1+ +1 1 1 1+ --R Type: List(Matrix(PrimeField(2))) ---E 64 +--E 51 ---S 65 of 68 +--S 52 of 55 sp2.1 --R --R @@ -2394,9 +2262,9 @@ sp2.1 --R | | | | --R +0 1 0 0+ +0 1 0 1+ --R Type: List(Matrix(PrimeField(2))) ---E 65 +--E 52 ---S 66 of 68 +--S 53 of 55 sp3.1 --R --R @@ -2432,9 +2300,9 @@ sp3.1 --R | | --R +%A + 1 %A %A %A + 1 0 %A + 1 %A 0 + --R Type: List(Matrix(FiniteField(2,2))) ---E 66 +--E 53 ---S 67 of 68 +--S 54 of 55 sp3.2 --R --R @@ -2470,9 +2338,9 @@ sp3.2 --R | | --R + %A %A %A + 1 %A + 1 %A %A 0 1 + --R Type: List(Matrix(FiniteField(2,2))) ---E 67 +--E 54 ---S 68 of 68 +--S 55 of 55 dA6d16 --R --R @@ -2540,7 +2408,7 @@ dA6d16 --R | | --R +0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1+ --R Type: List(Matrix(PrimeField(2))) ---E 68 +--E 55 )spool )lisp (bye)