# 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^{\times}$$ of $$R$$) and the group of ring automorphisms.

The multiplication of two elements $$(\phi, \pi, \alpha)(\psi, \sigma, \beta)$$ with

• $$\phi, \psi \in {R^{\times}}^n$$
• $$\pi, \sigma \in S_n$$ (with the multiplication $$\pi\sigma$$ done from left to right (like in GAP) – that is, $$(\pi\sigma)(i) = \sigma(\pi(i))$$ for all $$i$$.)
• $$\alpha, \beta \in Aut(R)$$

is defined by

$(\phi, \pi, \alpha)(\psi, \sigma, \beta) = (\phi \cdot \psi^{\pi, \alpha}, \pi\sigma, \alpha \circ \beta)$

with $$\psi^{\pi, \alpha} = (\alpha(\psi_{\pi(1)-1}), \ldots, \alpha(\psi_{\pi(n)-1}))$$ and an elementwisely defined multiplication of vectors. (The indexing of vectors is $$0$$-based here, so $$\psi = (\psi_0, \psi_1, \ldots, \psi_{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

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 $$S_n$$ 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 $${R^{ imes}}^n$$ 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 $${R^{ imes}}^n$$ 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 $${R^{ imes}}^n$$.

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