Base class for groups
Bases: sage.groups.group.Group
Generic abelian group.
Return True.
EXAMPLES:
sage: from sage.groups.group import AbelianGroup
sage: G = AbelianGroup()
sage: G.is_abelian()
True
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
Bases: sage.groups.group.Group
Generic finite group.
Return the Cayley graph for this finite group.
INPUT:
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:
Return True.
EXAMPLES:
sage: from sage.groups.group import FiniteGroup
sage: G = FiniteGroup()
sage: G.is_finite()
True
Bases: sage.structure.parent.Parent
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"])
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
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
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
Returns True if the group operation is given by * (rather than +).
Override for additive groups.
EXAMPLES:
sage: from sage.groups.group import Group
sage: G = Group()
sage: G.is_multiplicative()
True
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
Return the quotient of this group by the normal subgroup
.
EXAMPLES:
sage: from sage.groups.group import Group
sage: G = Group()
sage: G.quotient(G)
Traceback (most recent call last):
...
NotImplementedError
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
Return whether x is a group object.
INPUT:
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