Capabilities of AbstractAlgebra
This page is intended to give the reader an idea of the capabilities of the AbstractAlgebra package. This will be done in two ways. First, below is a brief listing of some these capabilities. Second, you can view a web page that is a conversion of a Mathematica notebook that illustrates many of these.
Note that this is only a partial description. You may wish to view the listing of functions for additional details or consult the documentation for the package for complete details.
 Builtin groups with which one can work
 Cyclic group represented as integers under addition mod n: Z_{n}
 Cyclic group represented as roots of unity
 Cyclic group represented generically as powers of g
 Gaussian integers mod n: Z_{n}[i]
 the group of units in the ring Z_{n} (under multiplicatin mod n), denoted U_{n}
 twisted Z_{n} where the elements are the same as in Z_{n1} and the operation of a*b is obtained by reducing mod n the result a + b + a * b.
 Symmetric group S_{n}
 Alternating group A_{n}
 Dihedral group D_{n}
 various others
 Building new groups
 The direct product (sum) of any two groups can be formed
 Given any group and an element from that group, the subgroup generated by that element can be formed
 Given any group and any set of elements from that group, the subgroup generated by the elements can be formed
 Given any group and any subgroup, the quotient structure can be formed. The subgroup can be tested for normality, which determines if the quotient structure is a group or not.
 Given a set of elements and an operation on them, one can try to form the group generated from the elements
 One can form a group from just a table
 Functions that work with groups
 For any group, its elements and operation can be extracted and manipulated
 A colored Cayley table can be formed for any group
 A set of elements with an operation (a Groupoid in our parlance) can be tested (and visualized) individually for each of the group axioms or at once with the GroupQ function
 The pairing of inverses can be determined (and visualized) for any group (or Groupoid)
 One can work with left or right cosets of any set of elements in a group
 Random elements from a group can be extracted
 The order of any group can be determined
 The order of any elements in a group can be determined.
 A group can be checked for commutativity
 One can determine the commutators of a group, its center, or its centralizers.
 A group can be checked for cyclicity
 The generators of a cyclic group can be determined
 Builtin rings with which one can work
 The integers under addition and multiplication mod n: Z_{n}
 Given an integer n, if k is a divisor of n, then the multiples of k form a (sub)ring
 Gaussian integers mod n: Z_{n}[i]
 LatticeRing[n] consists of the divisors of n with LCM/GCD for the addition and GCD for multiplication
 BooleanRing[n] consists of the subsets of {1, 2, ..., n} with the symmetric difference for the addition and intersection for the multiplication
 Building new rings
 The direct product (sum) of any two rings can be formed
 Given any ring and any subring, the quotient structure can be formed. The subring can be tested to see if it is an ideal, which determines if the quotient structure is a ring or not.
 One can form the set of all polynomials over a ring (the polynomial ring over R)
 One can form the ring of all m by n matrices over the ring R
 One can form the ring of all functions over the ring R
 Functions that work with rings
 For any ring, its elements, addition, and multiplication operations can be extracted and manipulated
 Colored Cayley tables can be formed for any ring
 A set of elements with two operations (a Ringoid in our parlance) can be tested (and visualized) individually for each of the ring axioms or at once with the RingQ function
 One can determine the zero or unity, if there is one; one can return all the units
 One can determine if an element is a zero divisor or list all zero divisors; similarly for idempotents and nilpotents
 The pairing of inverses (both additive and multiplicative) can be determined (and visualized) for any ring (or Ringoid)
 One can work with left or right cosets of any set of elements in a ring
 The additive and multiplicative groupoids can be extracted and then the above group operations can be performed on these
 The order of any ring can be determined
 The order of any elements in a romg can be determined.
 A ring can be checked to see if it is a field or an integral domain
 One can work with ideals
 There are many functions to work with polynomials over a ring R, as well as matrices over a ring R
 Random elements (or polynomials or matrices or functions) can be obtained for any ring R
 Builtin morphism with which one can work
 The map from Z_{m} to Z_{n} where elements are reduced mod n
 One can modify the above map by specifying the image of a generator in Z_{m}
 There is the induced canonical map given a morphism g: G to H (and likewise the induced canonical isomorphism)
 Functions that work with morphims
 One can form a morphoid by specifying the domain, range, and the mapping (between groups or rings)
 Given any morphoid, one determine the domain, codomain, and the list of rules that govern the function
 One can form the composition of two morphoids
 One have a visualization of how the morphoid assigns elements
 One can test morphoids for surjectivity (onto), injectivity (11), bijectivity (onto and 11), and being a morphism
 One can view the kernel or image of a given morphoid
 One can work with a particular automorphism or the set of all over a given cyclic group; similarly, one can work with inner automorphisms
