Base class for groups¶

Base class for groups

class sage.groups.group.AbelianGroup

Bases: sage.groups.group.Group

Generic abelian group.

is_abelian()

Return True.

EXAMPLES:

sage: from sage.groups.group import AbelianGroup
sage: G = AbelianGroup()
sage: G.is_abelian()
True

class sage.groups.group.AlgebraicGroup

Bases: sage.groups.group.Group

The Python constructor

TESTS:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.category()
Category of groups
sage: G = Group(category=Groups()) # todo: do the same test with some subcategory of Groups when there will exist one
sage: G.category()
Category of groups
sage: G = Group(category = CommutativeAdditiveGroups())
Traceback (most recent call last):
...
ValueError: (Category of commutative additive groups,) is not a subcategory of Category of groups
sage: G._repr_option('element_is_atomic')
False


Check for #8119:

sage: G = SymmetricGroup(2)
sage: h = hash(G)
sage: G.rename('S2')
sage: h == hash(G)
True

class sage.groups.group.FiniteGroup

Bases: sage.groups.group.Group

Generic finite group.

cayley_graph(connecting_set=None)

Return the Cayley graph for this finite group.

INPUT:

• connecting_set – (optional) list of elements to use for edges, default is the stored generators

OUTPUT:

The Cayley graph as a Sage DiGraph object. To plot the graph with with different colors

EXAMPLES:

sage: D4 = DihedralGroup(4); D4
Dihedral group of order 8 as a permutation group
sage: G = D4.cayley_graph()
sage: show(G, color_by_label=True, edge_labels=True)
sage: A5 = AlternatingGroup(5); A5
Alternating group of order 5!/2 as a permutation group
sage: G = A5.cayley_graph()
sage: G.show3d(color_by_label=True, edge_size=0.01, edge_size2=0.02, vertex_size=0.03)
sage: G.show3d(vertex_size=0.03, edge_size=0.01, edge_size2=0.02, vertex_colors={(1,1,1):G.vertices()}, bgcolor=(0,0,0), color_by_label=True, xres=700, yres=700, iterations=200) # long time (less than a minute)
sage: G.num_edges()
120
sage: G = A5.cayley_graph(connecting_set=[A5.gens()[0]])
sage: G.num_edges()
60
sage: g=PermutationGroup([(i+1,j+1) for i in range(5) for j in range(5) if j!=i])
sage: g.cayley_graph(connecting_set=[(1,2),(2,3)])
Digraph on 120 vertices

sage: s1 = SymmetricGroup(1); s = s1.cayley_graph(); s.vertices()
[()]


AUTHORS:

• Bobby Moretti (2007-08-10)
• Robert Miller (2008-05-01): editing
is_finite()

Return True.

EXAMPLES:

sage: from sage.groups.group import FiniteGroup
sage: G = FiniteGroup()
sage: G.is_finite()
True

class sage.groups.group.Group

Base class for all groups

TESTS:

sage: from sage.groups.group import Group
sage: G = Group()
sage: TestSuite(G).run(skip = ["_test_an_element",                                       "_test_associativity",                                       "_test_elements",                                       "_test_elements_eq_reflexive",                                       "_test_elements_eq_symmetric",                                       "_test_elements_eq_transitive",                                       "_test_elements_neq",                                       "_test_inverse",                                       "_test_one",                                       "_test_pickling",                                       "_test_prod",                                       "_test_some_elements"])

is_abelian()

Test whether this group is abelian.

EXAMPLES:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.is_abelian()
Traceback (most recent call last):
...
NotImplementedError

is_commutative()

Test whether this group is commutative.

This is an alias for is_abelian, largely to make groups work well with the Factorization class.

(Note for developers: Derived classes should override is_abelian, not is_commutative.)

EXAMPLE:

sage: SL(2, 7).is_commutative()
False

is_finite()

Returns True if this group is finite.

EXAMPLES:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.is_finite()
Traceback (most recent call last):
...
NotImplementedError

is_multiplicative()

Returns True if the group operation is given by * (rather than +).

EXAMPLES:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.is_multiplicative()
True

order()

Returns the number of elements of this group, which is either a positive integer or infinity.

EXAMPLES:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.order()
Traceback (most recent call last):
...
NotImplementedError

quotient(H)

Return the quotient of this group by the normal subgroup $$H$$.

EXAMPLES:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.quotient(G)
Traceback (most recent call last):
...
NotImplementedError

random_element(bound=None)

Return a random element of this group.

EXAMPLES:

sage: from sage.groups.group import Group
sage: G = Group()
sage: G.random_element()
Traceback (most recent call last):
...
NotImplementedError

sage.groups.group.is_Group(x)

Return whether x is a group object.

INPUT:

• x – anything.

OUTPUT:

Boolean.

EXAMPLES:

sage: F.<a,b> = FreeGroup()
sage: from sage.groups.group import is_Group
sage: is_Group(F)
True
sage: is_Group("a string")
False


Previous topic

Examples of Groups

Next topic

LibGAP-based Groups