# Endliche und abelsche Gruppen

Sage unterstützt das Rechnen mit Permutationsgruppen, endlichen klassischen Gruppen (wie z.B. \(SU(n,q)\)), endlichen Matrixgruppen (mit Ihren eigenen Erzeugern), und abelschen Gruppen (sogar unendlichen). Vieles davon ist mit Hilfe der GAP-Schnittstelle implementiert.

Zum Beispiel können Sie, um eine Permutationsgruppe zu erzeugen, die Liste der Erzeuger wie folgt angeben.

    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

Sie können in Sage auch die Tabelle der Charaktere (im LaTeX-Format) erhalten:

    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 beinhaltet auch klassische und Matrixgruppen über endlichen Körpern:

    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

Sie können auch mit (endlichen oder unendlichen) abelschen Gruppen rechnen.

    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