Functor that converts a commutative additive group into a multiplicative group.#
AUTHORS:
Mark Shimozono (2013): initial version
- class sage.groups.group_exp.GroupExp#
Bases:
Functor
A functor that converts a commutative additive group into an isomorphic multiplicative group.
More precisely, given a commutative additive group \(G\), define the exponential of \(G\) to be the isomorphic group with elements denoted \(e^g\) for every \(g \in G\) and but with product in multiplicative notation
\[e^g e^h = e^{g+h} \qquad\text{for all $g,h \in G$.}\]The class
GroupExp
implements the sage functor which sends a commutative additive group \(G\) to its exponential.The creation of an instance of the functor
GroupExp
requires no input:sage: E = GroupExp(); E Functor from Category of commutative additive groups to Category of groups
The
GroupExp
functor (denoted \(E\) in the examples) can be applied to two kinds of input. The first is a commutative additive group. The output is its exponential. This is accomplished by_apply_functor()
:sage: EZ = E(ZZ); EZ Multiplicative form of Integer Ring
Elements of the exponentiated group can be created and manipulated as follows:
sage: x = EZ(-3); x -3 sage: x.parent() Multiplicative form of Integer Ring sage: EZ(-1)*EZ(6) == EZ(5) True sage: EZ(3)^(-1) -3 sage: EZ.one() 0
The second kind of input the
GroupExp
functor accepts, is a homomorphism of commutative additive groups. The output is the multiplicative form of the homomorphism. This is achieved by_apply_functor_to_morphism()
:sage: L = RootSystem(['A',2]).ambient_space() sage: EL = E(L) sage: W = L.weyl_group(prefix="s") sage: s2 = W.simple_reflection(2) sage: def my_action(mu): ....: return s2.action(mu) sage: from sage.categories.morphism import SetMorphism sage: from sage.categories.homset import Hom sage: f = SetMorphism(Hom(L,L,CommutativeAdditiveGroups()), my_action) sage: F = E(f); F Generic endomorphism of Multiplicative form of Ambient space of the Root system of type ['A', 2] sage: v = L.an_element(); v (2, 2, 3) sage: y = F(EL(v)); y (2, 3, 2) sage: y.parent() Multiplicative form of Ambient space of the Root system of type ['A', 2]
- class sage.groups.group_exp.GroupExpElement(parent, x)#
Bases:
ElementWrapper
,MultiplicativeGroupElement
An element in the exponential of a commutative additive group.
INPUT:
self
– the exponentiated group element being createdparent
– the exponential group (parent ofself
)x
– the commutative additive group element being wrapped to formself
.
EXAMPLES:
sage: G = QQ^2 sage: EG = GroupExp()(G) sage: z = GroupExpElement(EG, vector(QQ, (1,-3))); z (1, -3) sage: z.parent() Multiplicative form of Vector space of dimension 2 over Rational Field sage: EG(vector(QQ,(1,-3)))==z True
- class sage.groups.group_exp.GroupExp_Class(G)#
Bases:
UniqueRepresentation
,Parent
The multiplicative form of a commutative additive group.
INPUT:
\(G\): a commutative additive group
OUTPUT:
The multiplicative form of \(G\).
EXAMPLES:
sage: GroupExp()(QQ) Multiplicative form of Rational Field
- Element#
alias of
GroupExpElement
- an_element()#
Return an element of the multiplicative group.
EXAMPLES:
sage: L = RootSystem(['A',2]).weight_lattice() sage: EL = GroupExp()(L) sage: x = EL.an_element(); x 2*Lambda[1] + 2*Lambda[2] sage: x.parent() Multiplicative form of Weight lattice of the Root system of type ['A', 2]
- group_generators()#
Return generators of
self
.EXAMPLES:
sage: GroupExp()(ZZ).group_generators() (1,)
- one()#
Return the identity element of the multiplicative group.
EXAMPLES:
sage: G = GroupExp()(ZZ^2) sage: G.one() (0, 0) sage: x = G.an_element(); x (1, 0) sage: x == x * G.one() True
- product(x, y)#
Return the product of \(x\) and \(y\) in the multiplicative group.
EXAMPLES:
sage: G = GroupExp()(ZZ) sage: G.product(G(2),G(7)) 9 sage: x = G(2) sage: x.__mul__(G(7)) 9