Kernel Subgroups - Groups

Skip to content
Back to top
View this page
Edit this page

# Kernel Subgroups

The kernel of a homomorphism implemented as a subgroup.

AUTHORS:

- Travis Scrimshaw (1-2023): Initial version

class sage.groups.kernel_subgroup.KernelSubgroup(morphism)

  Bases: `UniqueRepresentation`, `Parent`

  The kernel (normal) subgroup.

  Let \(\phi : G \to H\) be a group homomorphism. The kernel \(K = \{\phi(g) = 1 | g \in G\}\) is a normal subgroup of \(G\).

  class Element

    Bases: `ElementWrapper`

  ambient()

    Return the ambient group of `self`.

    EXAMPLES:

    Sage

        sage: PJ3 = groups.misc.PureCactus(3)                                       # needs sage.rings.number_field
        sage: PJ3.ambient()                                                         # needs sage.rings.number_field
        Cactus Group with 3 fruit

    Python

        >>> from sage.all import *
        >>> PJ3 = groups.misc.PureCactus(Integer(3))                                       # needs sage.rings.number_field
        >>> PJ3.ambient()                                                         # needs sage.rings.number_field
        Cactus Group with 3 fruit

  defining_morphism()

    Return the defining morphism of `self`.

    EXAMPLES:

    Sage

        sage: PJ3 = groups.misc.PureCactus(3)                                       # needs sage.rings.number_field
        sage: PJ3.defining_morphism()                                               # needs sage.rings.number_field
        Conversion via _from_cactus_group_element map:
          From: Cactus Group with 3 fruit
          To:   Symmetric group of order 3! as a permutation group

    Python

        >>> from sage.all import *
        >>> PJ3 = groups.misc.PureCactus(Integer(3))                                       # needs sage.rings.number_field
        >>> PJ3.defining_morphism()                                               # needs sage.rings.number_field
        Conversion via _from_cactus_group_element map:
          From: Cactus Group with 3 fruit
          To:   Symmetric group of order 3! as a permutation group

  gens()

    Return the generators of `self`.

    EXAMPLES:

    Sage

        sage: S2 = SymmetricGroup(2)
        sage: S3 = SymmetricGroup(3)
        sage: H = Hom(S3, S2)
        sage: phi = H(S2.__call__)
        sage: from sage.groups.kernel_subgroup import KernelSubgroup
        sage: K = KernelSubgroup(phi)
        sage: K.gens()
        ((),)

    Python

        >>> from sage.all import *
        >>> S2 = SymmetricGroup(Integer(2))
        >>> S3 = SymmetricGroup(Integer(3))
        >>> H = Hom(S3, S2)
        >>> phi = H(S2.__call__)
        >>> from sage.groups.kernel_subgroup import KernelSubgroup
        >>> K = KernelSubgroup(phi)
        >>> K.gens()
        ((),)

  lift(x)

    Lift `x` to the ambient group of `self`.

    EXAMPLES:

    Sage

        sage: PJ3 = groups.misc.PureCactus(3)                                       # needs sage.rings.number_field
        sage: PJ3.lift(PJ3.an_element()).parent()                                   # needs sage.rings.number_field
        Cactus Group with 3 fruit

    Python

        >>> from sage.all import *
        >>> PJ3 = groups.misc.PureCactus(Integer(3))                                       # needs sage.rings.number_field
        >>> PJ3.lift(PJ3.an_element()).parent()                                   # needs sage.rings.number_field
        Cactus Group with 3 fruit

  retract(x)

    Convert `x` to an element of `self`.

    EXAMPLES:

    Sage

        sage: # needs sage.rings.number_field
        sage: J3 = groups.misc.Cactus(3)
        sage: s12,s13,s23 = J3.group_generators()
        sage: PJ3 = groups.misc.PureCactus(3)
        sage: elt = PJ3.retract(s23*s12*s23*s13); elt
        s[2,3]*s[1,2]*s[2,3]*s[1,3]
        sage: elt.parent() is PJ3
        True

    Python

        >>> from sage.all import *
        >>> # needs sage.rings.number_field
        >>> J3 = groups.misc.Cactus(Integer(3))
        >>> s12,s13,s23 = J3.group_generators()
        >>> PJ3 = groups.misc.PureCactus(Integer(3))
        >>> elt = PJ3.retract(s23*s12*s23*s13); elt
        s[2,3]*s[1,2]*s[2,3]*s[1,3]
        >>> elt.parent() is PJ3
        True