# GroupPresentation¶

gpresent.spad line 450

Group represented by its generators and relations. Here we use it to hold homotopy group such as fundamental group. for more documentation see: http://www.euclideanspace.com/prog/scratchpad/mycode/discrete/finiteGroup/presentation/ Date Created: Jan 2016 Basic Operations: Related packages: Related categories: Related Domains: PermutationGroup Also See: AMS Classifications:

=: (%, %) -> Boolean
from BasicType
~=: (%, %) -> Boolean
from BasicType
coerce: % -> OutputForm
from CoercibleTo OutputForm
cyclicGroup: PositiveInteger -> %
cyclicGroup(n) constructs the cyclic group of order n acting on the integers 1, ..., n.
dihedralGroup: PositiveInteger -> %
dihedralGroup(n) constructs the dihedral group of order 2n acting on integers 1, ..., N.
directProduct: (%, %) -> %
directProduct of two groups
groupPresentation: () -> %
construct trivial group with no generators or relations
groupPresentation: (List NonNegativeInteger, List List Integer) -> %
construct from generators and relations
groupPresentation: List NonNegativeInteger -> %
construct free group with generators but no relations
hash: % -> SingleInteger
from SetCategory
hashUpdate!: (HashState, %) -> HashState
from SetCategory
latex: % -> String
from SetCategory
quotient: (%, List List Integer) -> %
take quotient by adding relations specified by addrel
quotient: (%, List NonNegativeInteger) -> %
take quotient by removing generators specified by remgen
refactor: % -> %
actual value of generators is not important, it is only important that they correspond to the appropriate entries in the relations. Therefore we can refactor the generators without changing the group represented.
simplify: % -> %
There may not be a simplest form but it is possible to do some simplifications as follows: 1. Remove all zero terms in relations. 2. If a relation consists of a single generator then remove that generator. 3. If a relation consists of a pair of generators then make the second generator the inverse of the first. 4. If a generator is adjacent to its inverse then cancel them out. 5. Remove duplicate relations. 6. Substitute one relation in another.
simplify: (%, Boolean) -> %
simplify with option to trace
symmetricGroup: PositiveInteger -> %
symmetricGroup(n) constructs the symmetric group of order n-1. Note: generates all possible relations may not be minimal.
toPermutationIfCan: % -> Union(PermutationGroup Integer, failed)
convert to permutation group return “failed” for infinite groups. For more information about the algorithm see: url{http://www.euclideanspace.com/prog/scratchpad/mycode/discrete/finiteGroup/pres2perm/}
toPermutationIfCan: (%, Boolean) -> Union(PermutationGroup Integer, failed)
convert to permutation group return “failed” for infinite groups. For more information about the algorithm see: url{http://www.euclideanspace.com/prog/scratchpad/mycode/discrete/finiteGroup/pres2perm/}
toPermutationIfCan: (%, List List Integer, Boolean) -> Union(PermutationGroup Integer, failed)
toPermutationIfCan(a, sg, trace) returns permutation representation of a on cosets of subgroup generate by sg or “failed” if computation exceed resource limit. trace activates debugging printouts.

BasicType

SetCategory