# GroupPresentation¶

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 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/}