RepLAB provides constructions of standard discrete groups.
General (signed) permutation groups are the two groups below.
SymmetricGroup
: Describes the symmetric group on a given domain.
S
: Shorthand for the construction of a symmetric group.
SignedSymmetricGroup
: Describes the signed symmetric group.
Then we distinguish particular groups.
A
: Describes the alternating group on a given domain.
C
: Describes the cyclic group on a given domain.
D
: Describes the dihedral group on a given domain.
KleinFourGroup
: Describes the Klein four-group
QuaternionGroup
: Describes the quaternion group of order 8.
Bases: replab.PermutationGroup
The symmetric group S(n)
, i.e. all permutations over n = “domainSize” elements
Example
>>> S5 = replab.S(5);
>>> S5.order
ans =
120
Class members list
Properties
generators
– Group generators
identity
– Monoid identity element
type
– Type of the contained elements
Prettyprinting
additionalFields
– Returns the name/value pairs corresponding to additional fields to be printed
disp
– Standard MATLAB/Octave display method
headerStr
– Tiny single line description of the current object type
hiddenFields
– Returns the names of the fields that are not printed as a row vector
longStr
– Multi-line description of the current object
shortStr
– Single line text description of the current object
Test helpers
assertEqv
– Compares two elements for equality
assertNotEqv
– Compares two elements for inequality
Sampling and equality test
Laws
check
– Checks the consistency of this object
checkAndContinue
– Checks the consistency of this object
laws
– Returns the laws that this object obeys
Property cache
cache
– Sets the value of the designated property in the cache
cached
– Returns the cached property if it exists, computing it if necessary
cachedOrDefault
– Returns the cached property if it exists, or the provided default value if it is unknown yet
cachedOrEmpty
– Returns the cached property if it exists, or []
if it is unknown yet
inCache
– Returns whether the value of the given property has already been computed
Unique ID
eq
– Equality test
id
– Returns the unique ID of this object (deprecated)
isequal
– Tests finite sets for equality
ne
– Non-equality test
Monoid operations
areCommuting
– Returns whether the two given elements commute
compose
– Composes two monoid/group elements
composeAll
– Composes a sequence of monoid elements
composeN
– Computes the power of a given element by repeated squaring
isIdentity
– Tests if the given element is the identity
Morphisms
abstractIsomorphism
– Returns an isomorphism to an abstract group
automorphismGroup
– Returns the automorphism group of this group
commutingMorphismsMorphism
– Constructs a morphism from morphisms with commuting images
conjugatingAutomorphism
– Returns the morphism that corresponds to left conjugation by an element
findIsomorphism
– Finds an isomorphism from this finite group to another finite group, if it exists
findIsomorphisms
– Finds all the isomorphisms from this finite group to another finite group
findMorphisms
– Finds all the morphisms from this finite group to another finite group
innerAutomorphism
– Returns the inner automorphism given using conjugation by the given element
isIsomorphicTo
– Returns whether this group is isomorphic to another group
isMorphismByImages
– Checks whether the given images describe a group morphism
isomorphismByFunction
– Constructs an isomorphism to a finite group using an image function
isomorphismByFunctions
– Constructs a group isomorphism using preimage/image functions
isomorphismByImages
– Constructs an isomorphism to a group using images of generators
morphismByFunction
– Constructs a group morphism using an image function
morphismByImages
– Constructs a morphism to a group using images of generators
orderPreservingPermutationIsomorphism
– Returns an isomorphism from this group to a permutation group, which preserves element order
permutationIsomorphism
– Returns an isomorphism from this group to a permutation group
regularIsomorphism
– Returns an isomorphism from this group to a permutation group whose degree matches the order of this group
Group methods
commutator
– Returns the commutator of two group elements
composeFlat
– Returns the composition of elements from an array picked according to the given indices/letters
composeWithInverse
– Returns the composition of an element with the inverse of another element
inverse
– Computes the inverse of an element
leftConjugate
– Returns the left conjugate of a group element
Elements
contains
– Tests whether this set contains the given element
elementOrder
– Returns the order of a group element
elements
– Returns a cell array containing all the elements of this set
elementsSequence
– Returns a sequence corresponding to this set
nElements
– Returns the size of this set
representative
– Returns the minimal element of this set under the type ordering
setProduct
– Returns a description of this set as a product of sets
smallGeneratingSet
– Returns a small set of elements generating the group
Relations to other sets
hasSameTypeAs
– Returns if this finite set has the same type as the given finite set
Image under isomorphism
imap
– Returns the image of this finite set under an isomorphism
General
Representations
commutingRepsRep
– Constructs a representation from commuting representations
directSumRep
– Computes the direct sum of representations on this group
indexRelabelingRep
– Representation that permutes the indices of a tensor
irrep
– Returns the irreducible representation of this symmetric group corresponding the given Young Diagram
irrepDimension
– Returns the dimension of the irreducible representation of a symmetric group corresponding a Young Diagram
naturalRep
– Returns the natural permutation representation of this permutation group
permutationRep
– Constructs a permutation representation of this group
regularRep
– Returns the left regular representation of this group
repByImages
– Constructs a finite dimensional representation of this group from preimages/images pairs
signRep
– Returns the sign representation of this permutation group
signedPermutationRep
– Returns a real signed permutation representation of this group
standardRep
– Returns the standard representation of this permutation group
tensorRep
– Computes the tensor product of representations
trivialRep
– Returns the trivial representation of this group on a finite dimensional vector space
Group construction
directPower
– Returns the direct product of this group with itself a number of times
directProduct
– Returns the direct product of groups
semidirectProduct
– Describes an external semidirect product of groups
Group properties
abelianInvariants
– Returns the group abelian invariants
exponent
– Returns the group exponent
fastRecognize
– Attempts to recognize this group in the standard atlas
hasReconstruction
– Returns whether the group has a “reconstruction”
isCommutative
– Returns whether this group is commutative
isCyclic
– Returns whether this group is a cyclic group
isSimple
– Returns whether this group is simple
isTrivial
– Tests whether this group is trivial
knownOrder
– Returns whether the order of this group has already been computed
maximalTorusDimension
– Returns, if available, the dimension of the maximal torus contained in the connected component of this group
order
– Returns the group order
presentation
– Returns a presentation of this group as a string
recognize
– Attempts to recognize this group in the standard atlas
reconstruction
– Returns a reconstruction of the group used to speed up group averaging
Isomorphic groups
abstractGroup
– Returns an abstract group isomorphic to this finite gorup
permutationGroup
– Returns the permutation group isomorphic to this finite group
Subgroups
center
– Returns the center of this group
centralizer
– Returns the centralizer of the given object in this group
derivedSeries
– Returns the derived series of this group
derivedSubgroup
– Computes the derived subgroup of this group
intersection
– Computes the intersection of two groups
randomProperSubgroup
– Constructs a random proper subgroup of this group
randomSubgroup
– Constructs a random subgroup of this group
subgroup
– Constructs a subgroup of the current group from elements
subgroupWithGenerators
– Constructs a subgroup of the current group from generators
trivialSubgroup
– Returns the trivial subgroup of this group
Conjugacy classes and character table
characterTable
– Alias for complexCharacterTable
complexCharacterTable
– Returns the complex character table of this group
conjugacyClass
– Returns the conjugacy class corresponding to the given element
conjugacyClasses
– Returns the conjugacy classes of this group
findLeftConjugations
– Returns the set of all elements that left conjugates an element to another element
knownComplexCharacterTable
– Returns whether the complex character table of this group is already known or computed
knownRealCharacterTable
– Returns whether the real character table of this group is already known or computed
realCharacterTable
– Returns the real character table of this group
setComplexCharacterTable
– Sets the complex character table of this group
setConjugacyClasses
– Sets the conjugacy classes of this group
setRealCharacterTable
– Sets the real character table of this group
Construction of groups
closure
– Computes the group generated by the elements of this group and other elements/groups
leftConjugateGroup
– Returns the left conjugate of the current group by the given element
normalClosure
– Computes the normal closure of an object in the closure of this group and this object
withGeneratorNames
– Returns a modified copy of this finite group with renamed generators
Cosets
doubleCoset
– Returns a double coset
doubleCosets
– Returns the set of double cosets in this group by the given groups
isNormalizedBy
– Returns whether a given element/group normalizes this group
leftCoset
– Returns a left coset
leftCosets
– Returns the set of left cosets of the given subgroup in this group
mldivide
– Shorthand for rightCosets
mrdivide
– Shorthand for leftCosets
normalCoset
– Returns a normal coset
normalCosets
– Returns the set of normal cosets of the given subgroup in this group
rightCoset
– Returns a right coset
rightCosets
– Returns the set of right cosets of the given subgroup in this group
Generators-related methods
factorizeFlat
– Factorizes an element or a coset as a flat sequence in the generators
factorizeWord
– Factorizes an element or a coset as a word in the generators
flatToWord
– Prints a word described by letters into a string
generator
– Returns the i-th group generator
generatorInverse
– Returns the inverse of the i-th group generator
generatorNames
– Returns the names of the group generators
imageFlat
– Returns the image of a flat word in the group generators
imageWord
– Computes the image of a word in the group generators
knownRelators
– Returns whether the relators of this group are known
nGenerators
– Returns the number of group generators
relatorsFlat
– Returns the relators of a presentation of this finite group in the flat format
relatorsWord
– Returns the relators of a presentation of this finite group
wordToFlat
– Parses a word into generator letters
Relations to other groups
isNormalSubgroupOf
– Returns whether this group is a normal subgroup of another group
isSubgroupOf
– Returns whether this group is a subgroup of another group
Group internal description
chain
– Returns the stabilizer chain corresponding to this permutation group.
factorization
– Returns an object able to compute factorizations in the group generators
lexChain
– Returns the reduced stabilizer chain corresponding to this permutation group in lexicographic order
partialChain
– Returns the stabilizer chain corresponding to this permutation group if it can be computed quickly
Methods specific to permutation groups
generatorsAsMatrix
– Returns the generators of this group concatenated in a matrix
matrixFindPermutationsTo
– Finds the permutations that send a matrix to another matrix
matrixStabilizer
– Returns the permutation subgroup that leaves a given matrix invariant by joint permutation of its rows and columns
orbits
– Returns the partition of the domain into orbits under this group
orderedPartitionStabilizer
– Computes the subgroup that leaves the given ordered partition invariant
pointwiseStabilizer
– Returns the subgroup that stabilizes the given set pointwise
setwiseStabilizer
– Returns the subgroup that stabilizes the given set as a set
stabilizer
– Returns the subgroup that stabilizes a given point
unorderedPartitionStabilizer
– Computes the subgroup that leaves the given unordered partition invariant
vectorFindLexMinimal
– Finds the lexicographic minimal vector under permutation of its coefficients by this group
vectorFindPermutationsTo
– Finds the permutations that send a vector to another vector
vectorStabilizer
– Returns the permutation subgroup that leaves a given vector invariant
wreathProduct
– Returns the wreath product of a compact group by this permutation group
Actions
indexRelabelingMorphism
– Returns the morphism the permutation action of this group on tensor coefficients
indexRelabelingPermutation
– Returns the permutation that acts by permuting tensor coefficients
matrixAction
– Returns the simultaneous action of permutations on both rows and columns of square matrices
naturalAction
– Returns the natural action of elements of this group on its domain
vectorAction
– Returns the action of permutations on column vectors
Inherited elements
Documentation in replab.FiniteGroup.abelianInvariants()
Documentation in replab.FiniteGroup.abstractGroup()
Documentation in replab.FiniteGroup.abstractIsomorphism()
Documentation in replab.Str.additionalFields()
Documentation in replab.Monoid.areCommuting()
Documentation in replab.Domain.assertEqv()
Documentation in replab.Domain.assertNotEqv()
Documentation in replab.Group.automorphismGroup()
Documentation in replab.Obj.cache()
Documentation in replab.Obj.cached()
Documentation in replab.Obj.cachedOrDefault()
Documentation in replab.Obj.cachedOrEmpty()
Documentation in replab.FiniteGroup.center()
Documentation in replab.FiniteGroup.centralizer()
Documentation in replab.PermutationGroup.chain()
Documentation in replab.FiniteGroup.characterTable()
Documentation in replab.Obj.check()
Documentation in replab.Obj.checkAndContinue()
Documentation in replab.FiniteGroup.closure()
Documentation in replab.Group.commutator()
Documentation in replab.Group.commutingMorphismsMorphism()
Documentation in replab.CompactGroup.commutingRepsRep()
Documentation in replab.FiniteGroup.complexCharacterTable()
Documentation in replab.Monoid.compose()
Documentation in replab.Monoid.composeAll()
Documentation in replab.Group.composeFlat()
Documentation in replab.Monoid.composeN()
Documentation in replab.Group.composeWithInverse()
Documentation in replab.FiniteGroup.conjugacyClass()
Documentation in replab.FiniteGroup.conjugacyClasses()
Documentation in replab.FiniteGroup.conjugatingAutomorphism()
Documentation in replab.FiniteSet.contains()
Documentation in replab.FiniteGroup.derivedSeries()
Documentation in replab.FiniteGroup.derivedSubgroup()
Documentation in replab.CompactGroup.directPower()
Documentation in replab.CompactGroup.directProduct()
Documentation in replab.CompactGroup.directSumRep()
Documentation in replab.Str.disp()
No documentation
Documentation in replab.FiniteGroup.doubleCoset()
Documentation in replab.FiniteGroup.doubleCosets()
Documentation in replab.FiniteGroup.elementOrder()
Documentation in replab.FiniteSet.elements()
Documentation in replab.FiniteSet.elementsSequence()
Documentation in replab.Obj.eq()
Documentation in replab.Domain.eqv()
Documentation in replab.FiniteGroup.exponent()
Documentation in replab.PermutationGroup.factorization()
Documentation in replab.FiniteGroup.factorizeFlat()
Documentation in replab.FiniteGroup.factorizeWord()
Documentation in replab.FiniteGroup.fastRecognize()
Documentation in replab.FiniteGroup.findIsomorphism()
Documentation in replab.FiniteGroup.findIsomorphisms()
Documentation in replab.FiniteGroup.findLeftConjugations()
Documentation in replab.FiniteGroup.findMorphisms()
Documentation in replab.FiniteGroup.flatToWord()
Documentation in replab.FiniteGroup.generator()
Documentation in replab.FiniteGroup.generatorInverse()
Documentation in replab.FiniteGroup.generatorNames()
Documentation in replab.FiniteGroup.generators
Documentation in replab.PermutationGroup.generatorsAsMatrix()
Documentation in replab.CompactGroup.hasReconstruction()
Documentation in replab.FiniteSet.hasSameTypeAs()
Documentation in replab.Str.headerStr()
Documentation in replab.Str.hiddenFields()
Documentation in replab.Obj.id()
Documentation in replab.Monoid.identity
Documentation in replab.FiniteGroup.imageFlat()
Documentation in replab.FiniteGroup.imageWord()
Documentation in replab.FiniteSet.imap()
Documentation in replab.Obj.inCache()
Documentation in replab.PermutationGroup.indexRelabelingMorphism()
Documentation in replab.PermutationGroup.indexRelabelingPermutation()
Documentation in replab.PermutationGroup.indexRelabelingRep()
Documentation in replab.Group.innerAutomorphism()
Documentation in replab.FiniteGroup.intersection()
Documentation in replab.Group.inverse()
Documentation in replab.FiniteGroup.isCommutative()
Documentation in replab.FiniteGroup.isCyclic()
Documentation in replab.Monoid.isIdentity()
Documentation in replab.FiniteGroup.isIsomorphicTo()
Documentation in replab.FiniteGroup.isMorphismByImages()
Documentation in replab.FiniteGroup.isNormalSubgroupOf()
Documentation in replab.FiniteGroup.isNormalizedBy()
Documentation in replab.FiniteGroup.isSimple()
Documentation in replab.FiniteGroup.isSubgroupOf()
Documentation in replab.FiniteGroup.isTrivial()
Documentation in replab.FiniteSet.isequal()
Documentation in replab.FiniteGroup.isomorphismByFunction()
Documentation in replab.Group.isomorphismByFunctions()
Documentation in replab.FiniteGroup.isomorphismByImages()
Documentation in replab.FiniteGroup.knownComplexCharacterTable()
Documentation in replab.FiniteGroup.knownOrder()
Documentation in replab.FiniteGroup.knownRealCharacterTable()
Documentation in replab.FiniteGroup.knownRelators()
Documentation in replab.Obj.laws()
Documentation in replab.Group.leftConjugate()
Documentation in replab.FiniteGroup.leftConjugateGroup()
Documentation in replab.FiniteGroup.leftCoset()
Documentation in replab.FiniteGroup.leftCosets()
Documentation in replab.PermutationGroup.lexChain()
Documentation in replab.Str.longStr()
Documentation in replab.PermutationGroup.matrixAction()
Documentation in replab.PermutationGroup.matrixFindPermutationsTo()
Documentation in replab.PermutationGroup.matrixStabilizer()
Documentation in replab.CompactGroup.maximalTorusDimension()
Documentation in replab.FiniteGroup.mldivide()
Documentation in replab.Group.morphismByFunction()
Documentation in replab.FiniteGroup.morphismByImages()
Documentation in replab.FiniteGroup.mrdivide()
No documentation
Documentation in replab.FiniteSet.nElements()
Documentation in replab.FiniteGroup.nGenerators()
Documentation in replab.PermutationGroup.naturalAction()
Documentation in replab.PermutationGroup.naturalRep()
Documentation in replab.Obj.ne()
Documentation in replab.FiniteGroup.normalClosure()
Documentation in replab.FiniteGroup.normalCoset()
Documentation in replab.FiniteGroup.normalCosets()
Documentation in replab.PermutationGroup.orbits()
Documentation in replab.FiniteGroup.order()
Documentation in replab.FiniteGroup.orderPreservingPermutationIsomorphism()
Documentation in replab.PermutationGroup.orderedPartitionStabilizer()
Documentation in replab.PermutationGroup.partialChain()
Documentation in replab.FiniteGroup.permutationGroup()
Documentation in replab.FiniteGroup.permutationIsomorphism()
Documentation in replab.FiniteGroup.permutationRep()
Documentation in replab.PermutationGroup.pointwiseStabilizer()
Documentation in replab.FiniteGroup.presentation()
Documentation in replab.FiniteGroup.randomProperSubgroup()
Documentation in replab.FiniteGroup.randomSubgroup()
Documentation in replab.FiniteGroup.realCharacterTable()
Documentation in replab.FiniteGroup.recognize()
Documentation in replab.CompactGroup.reconstruction()
Documentation in replab.FiniteGroup.regularIsomorphism()
Documentation in replab.FiniteGroup.regularRep()
Documentation in replab.FiniteGroup.relatorsFlat()
Documentation in replab.FiniteGroup.relatorsWord()
Documentation in replab.FiniteGroup.repByImages()
Documentation in replab.FiniteSet.representative()
Documentation in replab.FiniteGroup.rightCoset()
Documentation in replab.FiniteGroup.rightCosets()
Documentation in replab.Domain.sample()
Documentation in replab.CompactGroup.semidirectProduct()
Documentation in replab.FiniteGroup.setComplexCharacterTable()
Documentation in replab.FiniteGroup.setConjugacyClasses()
Documentation in replab.FiniteSet.setProduct()
Documentation in replab.FiniteGroup.setRealCharacterTable()
Documentation in replab.PermutationGroup.setwiseStabilizer()
Documentation in replab.Str.shortStr()
Documentation in replab.PermutationGroup.signRep()
Documentation in replab.FiniteGroup.signedPermutationRep()
Documentation in replab.FiniteGroup.smallGeneratingSet()
Documentation in replab.PermutationGroup.stabilizer()
Documentation in replab.PermutationGroup.standardRep()
Documentation in replab.FiniteGroup.subgroup()
Documentation in replab.FiniteGroup.subgroupWithGenerators()
Documentation in replab.CompactGroup.tensorRep()
Documentation in replab.CompactGroup.trivialRep()
Documentation in replab.FiniteGroup.trivialSubgroup()
Documentation in replab.FiniteSet.type
Documentation in replab.PermutationGroup.unorderedPartitionStabilizer()
Documentation in replab.PermutationGroup.vectorAction()
Documentation in replab.PermutationGroup.vectorFindLexMinimal()
Documentation in replab.PermutationGroup.vectorFindPermutationsTo()
Documentation in replab.PermutationGroup.vectorStabilizer()
Documentation in replab.FiniteGroup.withGeneratorNames()
Documentation in replab.FiniteGroup.wordToFlat()
Documentation in replab.PermutationGroup.wreathProduct()
Returns the irreducible representation of this symmetric group corresponding the given Young Diagram
Example
>>> S5 = replab.S(5); % doctest: +cyclotomic
>>> rep = S5.irrep([3 2], 'specht');
>>> rep.dimension
5
>>> rep = S5.irrep([3 2], 'seminormal');
>>> rep.dimension
5
>>> rep = S5.irrep([3 2], 'orthogonal');
>>> rep.dimension
5
partition (integer(1,*)
) – The partition corresponding the Young Diagram, with elements listed in
decreasing order (e.g [3 3 1]
represents the partition of 7 elements: 7 = 3+3+1
form ('specht', 'seminormal', or 'orthogonal'
) – The form the irrep takes. Default is ‘specht’.
Note: ‘specht’ is slower to construct than ‘seminormal’ or ‘orthogonal’ but, unlike them, has integer entries.
The corresponding irreducible representation
Returns the dimension of the irreducible representation of a symmetric group corresponding a Young Diagram
Example
>>> S5 = replab.S(5);
>>> rep = S5.irrep([3 2]);
>>> rep.dimension
5
>>> S5.irrepDimension([3 2])
5
partition (integer(1,*)
) – The partition corresponding the Young Diagram, with elements listed
in decreasing order (e.g [5 3 1]
represents the partition of 9 elements 9 = 5+3+1
The dimension of the corresponding irreducible representation.
integer
Constructs the symmetric over a given domain size
This static method keeps the constructed copies of S(n)
in cache.
domainSize (integer
) – Domain size, must be > 0
The constructed or cached symmetric group
Returns the symmetric group acting on a certain domain size
Alias for replab.PermutationGroup.symmetric
domainSize (integer
) – Domain size, must be >= 0
Symmetric group
Constructs the alternating group
n (integer
) – Group degree
The alternating group of degree n
Describes cyclic permutations over n = “domainSize” elements
n (integer
) – Cyclic group order and domain size
The cyclic group of given order/domain size
Constructs the dihedral group of order 2*n
This corresponds to the group of symmetries of the polygon with n
vertices
n (integer
) – Half the dihedral group order
The dihedral group permuting the vertices of the n
-gon
Constructs the Klein Four-Group
This corresponds to the symmetry group of a non-square rectangle, and corresponds to the direct product S2 x S2
.
The Klein four-group as a permutation gorup
Returns the quaternion group as a signed permutation group
The quaternion group acts on the {1, j, k, l}
basis elements.
The quaternion group