GroupPresentation

gpresent.spad line 450 [edit on github]

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

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

CoercibleTo OutputForm

SetCategory