Elements of a semimonomial transformation group.¶
The semimonomial transformation group of degree n over a ring R is the semidirect product of the monomial transformation group of degree n (also known as the complete monomial group over the group of units R× of R) and the group of ring automorphisms.
The multiplication of two elements (ϕ,π,α)(ψ,σ,β) with
- ϕ,ψ∈R×n
- π,σ∈Sn (with the multiplication πσ done from left to right (like in GAP) – that is, (πσ)(i)=σ(π(i)) for all i.)
- α,β∈Aut(R)
is defined by
with ψπ,α=(α(ψπ(1)−1),…,α(ψπ(n)−1)) and an elementwisely defined multiplication of vectors. (The indexing of vectors is 0-based here, so ψ=(ψ0,ψ1,…,ψn−1).)
The parent is
SemimonomialTransformationGroup
.
AUTHORS:
- Thomas Feulner (2012-11-15): initial version
- Thomas Feulner (2013-12-27): trac ticket #15576 dissolve dependency on
- Permutations.options.mul
EXAMPLES:
sage: S = SemimonomialTransformationGroup(GF(4, 'a'), 4)
sage: G = S.gens()
sage: G[0]*G[1]
((a, 1, 1, 1); (1,2,3,4), Ring endomorphism of Finite Field in a of size 2^2
Defn: a |--> a)
-
class
sage.groups.semimonomial_transformations.semimonomial_transformation.
SemimonomialTransformation
¶ Bases:
sage.structure.element.MultiplicativeGroupElement
An element in the semimonomial group over a ring R. See
SemimonomialTransformationGroup
for the details on the multiplication of two elements.The init method should never be called directly. Use the call via the parent
SemimonomialTransformationGroup
. instead.EXAMPLES:
sage: F.<a> = GF(9) sage: S = SemimonomialTransformationGroup(F, 4) sage: g = S(v = [2, a, 1, 2]) sage: h = S(perm = Permutation('(1,2,3,4)'), autom=F.hom([a**3])) sage: g*h ((2, a, 1, 2); (1,2,3,4), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> 2*a + 1) sage: h*g ((2*a + 1, 1, 2, 2); (1,2,3,4), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> 2*a + 1) sage: S(g) ((2, a, 1, 2); (), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> a) sage: S(1) # the one element in the group ((1, 1, 1, 1); (), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> a)
-
get_autom
()¶ Returns the component corresponding to Aut(R) of
self
.EXAMPLES:
sage: F.<a> = GF(9) sage: SemimonomialTransformationGroup(F, 4).an_element().get_autom() Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> 2*a + 1
-
get_perm
()¶ Returns the component corresponding to Sn of
self
.EXAMPLES:
sage: F.<a> = GF(9) sage: SemimonomialTransformationGroup(F, 4).an_element().get_perm() [4, 1, 2, 3]
-
get_v
()¶ Returns the component corresponding to Rimesn of
self
.EXAMPLES:
sage: F.<a> = GF(9) sage: SemimonomialTransformationGroup(F, 4).an_element().get_v() (a, 1, 1, 1)
-
get_v_inverse
()¶ Returns the (elementwise) inverse of the component corresponding to Rimesn of
self
.EXAMPLES:
sage: F.<a> = GF(9) sage: SemimonomialTransformationGroup(F, 4).an_element().get_v_inverse() (a + 2, 1, 1, 1)
-
invert_v
()¶ Elementwisely invert all entries of
self
which correspond to the component Rimesn.The other components of
self
keep unchanged.EXAMPLES:
sage: F.<a> = GF(9) sage: x = copy(SemimonomialTransformationGroup(F, 4).an_element()) sage: x.invert_v() sage: x.get_v() == SemimonomialTransformationGroup(F, 4).an_element().get_v_inverse() True
-