repthy
Class PGroup

Object
  extended byAbstractCollection
      extended byAbstractSet
          extended byImmutableSet
              extended byGroup
                  extended byHashGroup
                      extended byPGroup
All Implemented Interfaces:
Collection, Set

public class PGroup
extends HashGroup

A p-group, that is, a group of order pm where p is a prime and m ≥ 0.

A p-group does not have to be implemented as an PGroup. Any suitable subclass of Group may be used. However, several tools for p-groups are only available for instances of this class. The PGroup constructor makes it easy to convert a given p-group into an isomorphic PGroup with the same elements. The method Homomorphism.identity(repthy.Group, repthy.Group) gives the isomorphism.

Author:
Mark McConnell

Field Summary
 int m
          The order of the group is pm, where p is a prime and m ≥ 0.
 int p
          The order of the group is pm, where p is a prime and m ≥ 0.
 
Fields inherited from class Group
charTable
 
Constructor Summary
PGroup(Group s, int p)
          Given a Group and a prime p, this constructs a p-group with the same elements.
 
Method Summary
protected  void fillInCharTable()
          Fills in the character table using a special algorithm for p-groups.
 Set getMaximalSubgroups()
          Returns the set of all maximal subgroups of this p-group, that is, the subgroups of order pm-1.
 List getSubgroups()
          Returns a List containing every subgroup of this p-group exactly once, including this itself and {1}.
 String orderAsPower()
          Returns, for example, "2^4" if the order is 16.
 String toString()
           
 
Methods inherited from class HashGroup
contains, getConjClass, getConjClassIndex, getConjClassNum, iterator, size
 
Methods inherited from class Group
cyclicSubgpsUpToConj, describeOrder8, elementarySubgps, getCenter, getCentralizer, getCharComparator, getCharTable, getCommutatorSubgroup, getCompositionSeries, getConjClassRep, getEltOrder, getEltOrder, getIdentity, getOrder, getProperNormalSubgroup, getSylow, isAbelian, isCentral, isSimple, isSubgroupOf, order, power, printTest, tableTest
 
Methods inherited from class ImmutableSet
add, addAll, clear, remove, removeAll, retainAll
 
Methods inherited from class AbstractSet
equals, hashCode
 
Methods inherited from class AbstractCollection
containsAll, isEmpty, toArray, toArray
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface Set
containsAll, isEmpty, toArray, toArray
 

Field Detail

p

public final int p
The order of the group is pm, where p is a prime and m ≥ 0.


m

public final int m
The order of the group is pm, where p is a prime and m ≥ 0.

Constructor Detail

PGroup

public PGroup(Group s,
              int p)
Given a Group and a prime p, this constructs a p-group with the same elements.

Throws:
IllegalArgumentException - If this is not a p-group.
Method Detail

orderAsPower

public String orderAsPower()
Returns, for example, "2^4" if the order is 16.


toString

public String toString()

fillInCharTable

protected void fillInCharTable()
                        throws OrthonormalityException
Fills in the character table using a special algorithm for p-groups.

[The Greek letters are wrong in this paragraph.] For any supersolvable group G, Serre's book says every irreducible character chi of G is induced from a monomial character on some subgroup H of G. If M is a maximal subgroup of G containing H, then inducing chi from H to G is the same as inducing (Ind chi from H to M) from M to G. In other words, chi is induced from some character of M, and the latter is a fortiori irreducible. Rose's book shows that for nilpotent groups [check], a maximal subgroup M must be normal in G. Thus to get the irreducible characters of G, it suffices to do two things:

Overrides:
fillInCharTable in class Group
Throws:
OrthonormalityException - If the table isn't full at the end, or if anything goes wrong in the middle.

getMaximalSubgroups

public Set getMaximalSubgroups()
Returns the set of all maximal subgroups of this p-group, that is, the subgroups of order pm-1. Each subgroup is an instance of PGroup.


getSubgroups

public List getSubgroups()
Returns a List containing every subgroup of this p-group exactly once, including this itself and {1}. It's the lattice of all subgroups, without the lattice structure. The orders of the subgroups decrease as you go through the list. Each subgroup is an instance of PGroup.