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)[source]#

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[source]#

Bases: ElementWrapper

ambient()[source]#

Return the ambient group of self.

EXAMPLES:

sage: PJ3 = groups.misc.PureCactus(3)                                       # needs sage.rings.number_field
sage: PJ3.ambient()                                                         # needs sage.rings.number_field
Cactus Group with 3 fruit
>>> 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()[source]#

Return the defining morphism of self.

EXAMPLES:

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
>>> 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()[source]#

Return the generators of self.

EXAMPLES:

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()
((),)
>>> 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)[source]#

Lift x to the ambient group of self.

EXAMPLES:

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
>>> 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)[source]#

Convert x to an element of self.

EXAMPLES:

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
>>> 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