Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

experimental ipynb build of sagemath's tutorial

Views: 3112
Kernel:

Finite Groups, Abelian Groups

Sage has some support for computing with permutation groups, finite classical groups (such as ), finite matrix groups (with your own generators), and abelian groups (even infinite ones). Much of this is implemented using the interface to GAP.

For example, to create a permutation group, give a list of generators, as in the following example.

sage: G = PermutationGroup(['(1,2,3)(4,5)', '(3,4)']) sage: G Permutation Group with generators [(3,4), (1,2,3)(4,5)] sage: G.order() 120 sage: G.is_abelian() False sage: G.derived_series() # random-ish output [Permutation Group with generators [(1,2,3)(4,5), (3,4)], Permutation Group with generators [(1,5)(3,4), (1,5)(2,4), (1,3,5)]] sage: G.center() Subgroup of (Permutation Group with generators [(3,4), (1,2,3)(4,5)]) generated by [()] sage: G.random_element() # random output (1,5,3)(2,4) sage: print(latex(G)) \langle (3,4), (1,2,3)(4,5) \rangle

You can also obtain the character table (in LaTeX format) in Sage:

sage: G = PermutationGroup([[(1,2),(3,4)], [(1,2,3)]]) sage: latex(G.character_table()) \left(\begin{array}{rrrr} 1 & 1 & 1 & 1 \\ 1 & -\zeta_{3} - 1 & \zeta_{3} & 1 \\ 1 & \zeta_{3} & -\zeta_{3} - 1 & 1 \\ 3 & 0 & 0 & -1 \end{array}\right)

Sage also includes classical and matrix groups over finite fields:

sage: MS = MatrixSpace(GF(7), 2) sage: gens = [MS([[1,0],[-1,1]]),MS([[1,1],[0,1]])] sage: G = MatrixGroup(gens) sage: G.conjugacy_classes_representatives() ( [1 0] [0 6] [0 4] [6 0] [0 6] [0 4] [0 6] [0 6] [0 6] [4 0] [0 1], [1 5], [5 5], [0 6], [1 2], [5 2], [1 0], [1 4], [1 3], [0 2], <BLANKLINE> [5 0] [0 3] ) sage: G = Sp(4,GF(7)) sage: G Symplectic Group of degree 4 over Finite Field of size 7 sage: G.random_element() # random output [5 5 5 1] [0 2 6 3] [5 0 1 0] [4 6 3 4] sage: G.order() 276595200

You can also compute using abelian groups (infinite and finite):

sage: F = AbelianGroup(5, [5,5,7,8,9], names='abcde') sage: (a, b, c, d, e) = F.gens() sage: d * b**2 * c**3 b^2*c^3*d sage: F = AbelianGroup(3,[2]*3); F Multiplicative Abelian group isomorphic to C2 x C2 x C2 sage: H = AbelianGroup([2,3], names="xy"); H Multiplicative Abelian group isomorphic to C2 x C3 sage: AbelianGroup(5) Multiplicative Abelian group isomorphic to Z x Z x Z x Z x Z sage: AbelianGroup(5).order() +Infinity