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.
• Built-in groups with which one can work
• Cyclic group represented as integers under addition mod n: Zn
• Cyclic group represented as roots of unity
• Cyclic group represented generically as powers of g
• Gaussian integers mod n: Zn[i]
• the group of units in the ring Zn (under multiplicatin mod n), denoted Un
• twisted Zn where the elements are the same as in Zn-1 and the operation of a*b is obtained by reducing mod n the result a + b + a * b.
• Symmetric group Sn
• Alternating group An
• Dihedral group Dn
• 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
• Built-in rings with which one can work
• The integers under addition and multiplication mod n: Zn
• Given an integer n, if k is a divisor of n, then the multiples of k form a (sub)ring
• Gaussian integers mod n: Zn[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
• Built-in morphism with which one can work
• The map from Zm to Zn where elements are reduced mod n
• One can modify the above map by specifying the image of a generator in Zm
• 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 (1-1), bijectivity (onto and 1-1), 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