This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The copyright holder grants you permission to redistribute this document freely as a verbatim copy. Furthermore, the copyright holder permits you to develop any derived work from this document provided that the following conditions are met. a) The derived work acknowledges the fact that it is derived from this document, and maintains a prominent reference in the work to the original source. b) The fact that the derived work is not the original OpenMath document is stated prominently in the derived work. Moreover if both this document and the derived work are Content Dictionaries then the derived work must include a different CDName element, chosen so that it cannot be confused with any works adopted by the OpenMath Society. In particular, if there is a Content Dictionary Group whose name is, for example, `math' containing Content Dictionaries named `math1', `math2' etc., then you should not name a derived Content Dictionary `mathN' where N is an integer. However you are free to name it `private_mathN' or some such. This is because the names `mathN' may be used by the OpenMath Society for future extensions. c) The derived work is distributed under terms that allow the compilation of derived works, but keep paragraphs a) and b) intact. The simplest way to do this is to distribute the derived work under the OpenMath license, but this is not a requirement. If you have questions about this license please contact the OpenMath society at http://www.openmath.org. gp1 http://www.openmath.org/cd http://www.openmath.org/cd/gp1.ocd 2006-03-30 2004-03-30 3 0 experimental A CD of functions for group theory Written by A. Solomon on 1998-11-19 Modified by David Carlisle 1998-04-28 This is the old version of group1. It is now deprecated in facour of the Cds in the riaca_algebra CD group. declare_group application This symbol is a constructor for groups. It takes four arguments in the following order; a set to specify the elements in the group, a binary operation to specify the group operation, a unary operation to specify inverses of group elements and an element to specify the identity. Both the binary and unary operations should act on elements of the set and return an element of the set. A group is closed under its operation. A groups operation is associative. A group has an identity element. Every element of a group has an inverse. This example represents the group which has as elements all positive and negative even numbers, the group operation is binary addition, inverses are the negative of the element and the identity is the zero element. 2 is_abelian application The unary boolean function whose value is true iff the argument is an abelian group If is_abelian(G) then for all a,b in element_set(G) a*b = b*a group application The n-ary function Group. The group generated by its arguments. The arguments must have a natural group operation associated with them. element_set application The unary function which returns the set of elements of a group. is_subgroup application The binary function whose value is true if the second argument is a subgroup of the first. A is a subgroup of B implies element_set(A) is a subset of element_set(B) right_transversal application The binary function whose value is a set of representatives for the right cosets of the second argument as a subgroup of the first. normal_closure application The binary function whose value is the set of conjugates of the elements of the second group by elements of the first, where multiplication between them is defined. n in the normal closure (A,B) implies there exists a in A and b in B s.t. n = b^(-1) a b is_normal application If G, H are the group arguments, then IsNormal(G,H) returns true precisely when G is normal in H. That is, g^-1*h*g is defined and contained in H for all h in H and g in G. is_normal(G,H) implies that for all g in G and h in H then g^-1*h*g is in H quotient_group application The binary function whose value is the factor group of the first argument by the second, assuming the second is normal in the first. conjugacy_class application The binary function whose value is the set of elements which are conjugate to the second argument in the first. The conjugacy class in G with respect to h = {g^(-1) h g | g in G} derived_subgroup application The unary function whose value is the subgroup of argument generated by all products of the form xyx^-1y^-1. d in the derived subgroup of G implies there exist x,y in G such that d=x y x^(-1) y^(-1) sylow_subgroup application The largest p-subgroup of the argument (up to conjugacy). character_table_of_group application Refers to the character table of its argument which must be a group. character_table application This is the constructor for a character table. Usage: CharacterTable(centralizer_primes, centralizer_indices, classnames, power_map, irreducibles_matrix) If G has n conjugacy classes then: * centralizer_primes is of the form [p1, .., pk] i < j implies that pi < pj and the pi are precisely the primes which divide the order of some centralizer of a conjugacy class * centralizer_indices is of the form [[i11, ...,i1k] ... [in1,...ink]] so the centralizer of class 1 has order p1^i11 ... pk^i1k etc * classnames is a list of n strings which name the conjugacy classes in line with the convention used in the Atlas of Finite Groups * power_map is of the form [list1, ..., listk] where listi[j] is the name of the class where elements of class j go when raised to the power pi. * irreducibles_matrix: rows correspond to irreducible characters, columns are conjugacy classes. Entries are the value of an element of the column's conjugacy class under the character of the row.