# decomposeMonomialAlgebra -- Decomposition of one monomial algebra over a subalgebra

## Synopsis

• Usage:
decomposeMonomialAlgebra f
decomposeMonomialAlgebra R
decomposeMonomialAlgebra B
decomposeMonomialAlgebra(B,A)
decomposeMonomialAlgebra M
• Inputs:
• f, , between multigraded polynomial rings, or
• R, , multigraded, with B = degrees R and K = coefficientRing R, or
• B, a list, In the case B is specified, K is set via the Option CoefficientField. If a list of positive integers is given, the function uses adjoinPurePowers and homogenizeSemigroup to convert it into a list of elements of ℕ2.
• A, a list, of elements of B, such that K[B] is finite as a K[A]-module. If A is specified, the function chooses the canonical map f from the A-graded to the B-graded polynomial ring.
• M,
• Optional inputs:
• Outputs:
• , with the following data: Let B be the degree monoid of the target of f and analogously A for the source. The keys are representatives of congruence classes in G(B) / G(A). The value associated to a key k is a tuple whose first component is an ideal of K[A] isomorphic to the K[A]-submodule of K[B] consisting of elements in the class k, and whose second component is an element of G(B) that is the translation vector between the weights of the generators of the ideal and those of the submodule of K[B].

## Description

Let K[B] be the monomial algebra of the degree monoid of the target of f and analogously K[A] for source of f. Assume that K[B] is finite as a K[A]-module.

The monomial algebra K[B] is decomposed as a direct sum of monomial ideals in K[A] with twists in G(B).

If R with degrees B is specified then A is computed via findGeneratorsOfSubalgebra.

Note that the shift chosen by the function depends on the monomial ordering of K[A] (in the non-simplicial case).

 ```i1 : B = {{4,2},{10,6},{3,7},{3,6}} o1 = {{4, 2}, {10, 6}, {3, 7}, {3, 6}} o1 : List``` ```i2 : A = {{4,2},{10,6},{3,7}} o2 = {{4, 2}, {10, 6}, {3, 7}} o2 : List``` `i3 : S = ZZ/101[x_0..x_(#B-1), Degrees=>B];` `i4 : P = ZZ/101[x_0..x_(#A-1), Degrees=>A];` ```i5 : f = map(S,P) o5 = map(S,P,{x , x , x }) 0 1 2 o5 : RingMap S <--- P``` ```i6 : decomposeMonomialAlgebra f 210 189 9 194 7 2 199 5 4 204 3 6 209 8 188 10 8 193 8 10 198 6 12 203 4 14 208 2 16 o6 = HashTable{| 1 | => {ideal (x , x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x ), | -837 |}} | 0 | 0 0 1 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 | -414 | 210 189 9 194 7 2 199 5 4 204 3 6 209 8 188 10 8 193 8 10 198 6 12 203 4 14 208 2 16 0 => {ideal (x , x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x , x x x ), | -840 |} 0 0 1 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 | -420 | o6 : HashTable```

Decomposition over a polynomial ring

 ```i7 : B = {{4,2},{3,7},{10,6},{3,6}} o7 = {{4, 2}, {3, 7}, {10, 6}, {3, 6}} o7 : List``` ```i8 : A = {{4,2},{3,7}} o8 = {{4, 2}, {3, 7}} o8 : List``` `i9 : S = ZZ/101[x_0..x_(#B-1), Degrees=>B];` `i10 : P = ZZ/101[x_0..x_(#A-1), Degrees=>A];` ```i11 : f = map(S,P) o11 = map(S,P,{x , x }) 0 1 o11 : RingMap S <--- P``` ```i12 : decomposeMonomialAlgebra f 16 2 o12 = HashTable{| -1 | => {ideal (x , x ), | 9 |} } | 0 | 0 1 | 16 | 8 | -2 | => {ideal (x , x ), | 6 |} | 0 | 0 1 | 4 | 17 2 10 | -3 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 1 1 | 20 | 2 8 16 | -4 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 1 1 | 8 | | -5 | => {ideal 1, | 9 |} | 0 | | 18 | 6 6 | -6 | => {ideal (x , x ), | 6 |} | 0 | 0 1 | 6 | 8 | -7 | => {ideal (x , x ), | 15 |} | 0 | 0 1 | 22 | 7 6 14 | -8 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 1 1 | 10 | | -9 | => {ideal 1, | 3 |} | 0 | | 6 | 11 4 | -10 | => {ideal (x , x ), | 6 |} | 0 | 0 1 | 8 | 12 4 12 | 1 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 1 1 | 18 | 8 | 2 | => {ideal (x , x ), | 12 |} | 0 | 0 1 | 16 | 11 4 | 3 | => {ideal (x , x ), | 9 |} | 0 | 0 1 | 14 | | 4 | => {ideal 1, | 6 |} | 0 | | 12 | 7 6 14 | 5 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 1 1 | 16 | 17 2 10 | 6 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 1 1 | 14 | 6 6 | 7 | => {ideal (x , x ), | 9 |} | 0 | 0 1 | 12 | 16 2 | 8 | => {ideal (x , x ), | 6 |} | 0 | 0 1 | 10 | 2 8 16 | 9 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 1 1 | 14 | 12 4 12 | 10 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 1 1 | 12 | 8 | 11 | => {ideal (x , x ), | 9 |} | 0 | 0 1 | 10 | 0 => {ideal 1, 0} o12 : HashTable```

Specifying R:

 ```i13 : B = {{4,2},{10,6},{3,7},{3,6}} o13 = {{4, 2}, {10, 6}, {3, 7}, {3, 6}} o13 : List``` `i14 : S = ZZ/101[x_0..x_(#B-1), Degrees=>B];` ```i15 : decomposeMonomialAlgebra S 16 2 o15 = HashTable{| -1 | => {ideal (x , x ), | 9 |} } | 0 | 0 2 | 16 | 8 | -2 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 4 | 17 2 10 | -3 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 20 | 2 8 16 | -4 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 8 | | -5 | => {ideal 1, | 9 |} | 0 | | 18 | 6 6 | -6 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 6 | 8 | -7 | => {ideal (x , x ), | 15 |} | 0 | 0 2 | 22 | 7 6 14 | -8 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 10 | | -9 | => {ideal 1, | 3 |} | 0 | | 6 | 11 4 | -10 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 8 | 12 4 12 | 1 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 18 | 8 | 2 | => {ideal (x , x ), | 12 |} | 0 | 0 2 | 16 | 11 4 | 3 | => {ideal (x , x ), | 9 |} | 0 | 0 2 | 14 | | 4 | => {ideal 1, | 6 |} | 0 | | 12 | 7 6 14 | 5 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 16 | 17 2 10 | 6 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 14 | 6 6 | 7 | => {ideal (x , x ), | 9 |} | 0 | 0 2 | 12 | 16 2 | 8 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 10 | 2 8 16 | 9 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 14 | 12 4 12 | 10 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 12 | 8 | 11 | => {ideal (x , x ), | 9 |} | 0 | 0 2 | 10 | 0 => {ideal 1, 0} o15 : HashTable```

Specifying a monomial algebra:

 ```i16 : M = monomialAlgebra {{4,2},{10,6},{3,7},{3,6}} ZZ o16 = ---[x , x , x , x ] 101 0 1 2 3 o16 : MonomialAlgebra generated by {{4, 2}, {10, 6}, {3, 7}, {3, 6}}``` ```i17 : decomposeMonomialAlgebra M 16 2 o17 = HashTable{| -1 | => {ideal (x , x ), | 9 |} } | 0 | 0 2 | 16 | 8 | -2 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 4 | 17 2 10 | -3 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 20 | 2 8 16 | -4 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 8 | | -5 | => {ideal 1, | 9 |} | 0 | | 18 | 6 6 | -6 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 6 | 8 | -7 | => {ideal (x , x ), | 15 |} | 0 | 0 2 | 22 | 7 6 14 | -8 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 10 | | -9 | => {ideal 1, | 3 |} | 0 | | 6 | 11 4 | -10 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 8 | 12 4 12 | 1 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 18 | 8 | 2 | => {ideal (x , x ), | 12 |} | 0 | 0 2 | 16 | 11 4 | 3 | => {ideal (x , x ), | 9 |} | 0 | 0 2 | 14 | | 4 | => {ideal 1, | 6 |} | 0 | | 12 | 7 6 14 | 5 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 16 | 17 2 10 | 6 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 14 | 6 6 | 7 | => {ideal (x , x ), | 9 |} | 0 | 0 2 | 12 | 16 2 | 8 | => {ideal (x , x ), | 6 |} | 0 | 0 2 | 10 | 2 8 16 | 9 | => {ideal (x , x x , x ), | 15 |} | 0 | 0 0 2 2 | 14 | 12 4 12 | 10 | => {ideal (x , x x , x ), | 12 |} | 0 | 0 0 2 2 | 12 | 8 | 11 | => {ideal (x , x ), | 9 |} | 0 | 0 2 | 10 | 0 => {ideal 1, 0} o17 : HashTable```

Specifying a monomial curve by a list of positive integers:

 ```i18 : decomposeMonomialAlgebra {1,4,8,9,11} o18 = HashTable{| -1 | => {ideal 1, | 10 |} } | 1 | | 12 | | -2 | => {ideal 1, | 9 |} | 2 | | 2 | | -3 | => {ideal 1, | 8 |} | 3 | | 3 | 3 | -4 | => {ideal (x , x ), | 7 |} | 4 | 1 0 | 4 | 2 | -5 | => {ideal (x , x ), | 6 |} | 5 | 1 0 | 5 | | 1 | => {ideal 1, | 1 |} | -1 | | 10 | | 2 | => {ideal (x , x ), | 2 |} | -2 | 1 0 | 9 | 2 2 | 3 | => {ideal (x , x x , x ), | 3 |} | -3 | 1 0 1 0 | 8 | | 4 | => {ideal 1, | 4 |} | -4 | | 7 | | 5 | => {ideal (x , x ), | 5 |} | -5 | 1 0 | 6 | 0 => {ideal 1, 0} o18 : HashTable```

Some simpler examples:

 ```i19 : B = adjoinPurePowers homogenizeSemigroup {{1,2},{3,0},{0,4},{0,5}} o19 = {{5, 0, 0}, {0, 5, 0}, {0, 0, 5}, {1, 2, 2}, {3, 0, 2}, {0, 4, 1}} o19 : List``` ```i20 : A = adjoinPurePowers homogenizeSemigroup {{0,5}} o20 = {{5, 0, 0}, {0, 5, 0}, {0, 0, 5}} o20 : List``` `i21 : S = ZZ/101[x_0..x_(#B-1), Degrees=>B];` `i22 : P = ZZ/101[x_0..x_(#A-1), Degrees=>A];` ```i23 : f = map(S,P) o23 = map(S,P,{x , x , x }) 0 1 2 o23 : RingMap S <--- P``` ```i24 : decomposeMonomialAlgebra f 2 o24 = HashTable{| -1 | => {ideal (x , x ), | 4 |} } | -1 | 1 0 | 4 | | 2 | | 7 | | -1 | => {ideal 1, | 4 |} | -2 | | 8 | | -2 | | 8 | 2 | -1 | => {ideal (x , x ), | 4 |} | 0 | 1 0 | 0 | | 1 | | 6 | | -1 | => {ideal 1, | 4 |} | 1 | | 6 | | 0 | | 5 | | -1 | => {ideal 1, | 4 |} | 2 | | 2 | | -1 | | 4 | | -2 | => {ideal 1, | 3 |} | -1 | | 4 | | -2 | | 3 | | -2 | => {ideal 1, | 3 |} | -2 | | 8 | | -1 | | 4 | | -2 | => {ideal 1, | 3 |} | 0 | | 0 | | 2 | | 2 | | -2 | => {ideal 1, | 3 |} | 1 | | 6 | | 1 | | 6 | 2 2 | -2 | => {ideal (x x , x ), | 3 |} | 2 | 0 2 1 | 2 | | 0 | | 5 | | 0 | => {ideal 1, | 0 |} | -1 | | 4 | | 1 | | 1 | | 0 | => {ideal 1, | 0 |} | -2 | | 8 | | 2 | | 2 | 2 2 | 0 | => {ideal (x x , x ), | 0 |} | 1 | 0 2 1 | 6 | | -1 | | 4 | 2 2 | 0 | => {ideal (x x , x ), | 0 |} | 2 | 0 2 1 | 2 | | -2 | | 3 | 2 | 1 | => {ideal (x , x ), | 1 |} | -1 | 1 0 | 4 | | 0 | | 5 | 2 | 1 | => {ideal (x , x ), | 1 |} | -2 | 1 0 | 8 | | 1 | | 6 | 2 | 1 | => {ideal (x , x ), | 1 |} | 0 | 1 0 | 0 | | -1 | | 4 | | 1 | => {ideal 1, | 1 |} | 1 | | 6 | | -2 | | 3 | | 1 | => {ideal 1, | 1 |} | 2 | | 2 | | 2 | | 2 | | 2 | => {ideal 1, | 2 |} | -1 | | 4 | | -1 | | 4 | | 2 | => {ideal 1, | 2 |} | -2 | | 8 | | 0 | | 5 | 4 2 2 | 2 | => {ideal (x , x x , x ), | 2 |} | 0 | 1 0 1 0 | 0 | | -2 | | 8 | 2 | 2 | => {ideal (x , x ), | 2 |} | 1 | 1 0 | 6 | | 2 | | 7 | 2 | 2 | => {ideal (x , x ), | 2 |} | 2 | 1 0 | 2 | | 1 | | 6 | 0 => {ideal 1, 0} o24 : HashTable```

Consider the family of smooth monomial curves in 3, the one of degree d having parametrization

(s,t) →(sd, sd-1t, std-1 td) ∈ℙ3.

 `i25 : kk=ZZ/101;` `i26 : L= for d from 4 to 10 list (f= map(kk[x_0..x_3,Degrees=>{{d,0},{d-1,1},{1,d-1},{0,d}}], kk[x_0,x_3,Degrees=>{{d,0},{0,d}}]));` ```i27 : print\decomposeMonomialAlgebra\L HashTable{| -1 | => {ideal 1, | 3 |} } | 1 | | 1 | | 1 | => {ideal 1, | 1 |} | -1 | | 3 | | 2 | => {ideal (x , x ), | 2 |} | 2 | 0 3 | 2 | 0 => {ideal 1, 0} HashTable{| -1 | => {ideal 1, | 4 |} } | 1 | | 1 | 2 | -2 | => {ideal (x , x ), | 3 |} | 2 | 0 3 | 2 | | 1 | => {ideal 1, | 1 |} | -1 | | 4 | 2 | 2 | => {ideal (x , x ), | 2 |} | -2 | 0 3 | 3 | 0 => {ideal 1, 0} HashTable{| -1 | => {ideal 1, | 5 |} } | 1 | | 1 | 3 | -2 | => {ideal (x , x ), | 4 |} | 2 | 0 3 | 2 | | 1 | => {ideal 1, | 1 |} | -1 | | 5 | 3 | 2 | => {ideal (x , x ), | 2 |} | -2 | 0 3 | 4 | 2 2 | 3 | => {ideal (x , x ), | 3 |} | 3 | 0 3 | 3 | 0 => {ideal 1, 0} HashTable{| -1 | => {ideal 1, | 6 |} } | 1 | | 1 | 4 | -2 | => {ideal (x , x ), | 5 |} | 2 | 0 3 | 2 | 2 3 | -3 | => {ideal (x , x ), | 4 |} | 3 | 0 3 | 3 | | 1 | => {ideal 1, | 1 |} | -1 | | 6 | 4 | 2 | => {ideal (x , x ), | 2 |} | -2 | 0 3 | 5 | 3 2 | 3 | => {ideal (x , x ), | 3 |} | -3 | 0 3 | 4 | 0 => {ideal 1, 0} HashTable{| -1 | => {ideal 1, | 7 |} } | 1 | | 1 | 5 | -2 | => {ideal (x , x ), | 6 |} | 2 | 0 3 | 2 | 2 4 | -3 | => {ideal (x , x ), | 5 |} | 3 | 0 3 | 3 | | 1 | => {ideal 1, | 1 |} | -1 | | 7 | 5 | 2 | => {ideal (x , x ), | 2 |} | -2 | 0 3 | 6 | 4 2 | 3 | => {ideal (x , x ), | 3 |} | -3 | 0 3 | 5 | 3 3 | 4 | => {ideal (x , x ), | 4 |} | 4 | 0 3 | 4 | 0 => {ideal 1, 0} HashTable{| -1 | => {ideal 1, | 8 |} } | 1 | | 1 | 6 | -2 | => {ideal (x , x ), | 7 |} | 2 | 0 3 | 2 | 2 5 | -3 | => {ideal (x , x ), | 6 |} | 3 | 0 3 | 3 | 3 4 | -4 | => {ideal (x , x ), | 5 |} | 4 | 0 3 | 4 | | 1 | => {ideal 1, | 1 |} | -1 | | 8 | 6 | 2 | => {ideal (x , x ), | 2 |} | -2 | 0 3 | 7 | 5 2 | 3 | => {ideal (x , x ), | 3 |} | -3 | 0 3 | 6 | 4 3 | 4 | => {ideal (x , x ), | 4 |} | -4 | 0 3 | 5 | 0 => {ideal 1, 0} HashTable{| -1 | => {ideal 1, | 9 |} } | 1 | | 1 | 7 | -2 | => {ideal (x , x ), | 8 |} | 2 | 0 3 | 2 | 2 6 | -3 | => {ideal (x , x ), | 7 |} | 3 | 0 3 | 3 | 3 5 | -4 | => {ideal (x , x ), | 6 |} | 4 | 0 3 | 4 | | 1 | => {ideal 1, | 1 |} | -1 | | 9 | 7 | 2 | => {ideal (x , x ), | 2 |} | -2 | 0 3 | 8 | 6 2 | 3 | => {ideal (x , x ), | 3 |} | -3 | 0 3 | 7 | 5 3 | 4 | => {ideal (x , x ), | 4 |} | -4 | 0 3 | 6 | 4 4 | 5 | => {ideal (x , x ), | 5 |} | 5 | 0 3 | 5 | 0 => {ideal 1, 0} o27 = {, , , , , , } o27 : List```

 ```i28 : decomposeHomogeneousMA {{2,0,1},{0,2,1},{1,1,1},{2,2,1},{2,1,1},{1,4,1}} 2 o28 = HashTable{| 0 | => {ideal (x x , x ), -1}} | 1 | 0 5 3 | 0 | 2 0 => {ideal (x , x x ), -1} 3 0 5 o28 : HashTable```

## Ways to use decomposeMonomialAlgebra :

• decomposeMonomialAlgebra(List)
• decomposeMonomialAlgebra(List,List)
• decomposeMonomialAlgebra(MonomialAlgebra)
• decomposeMonomialAlgebra(PolynomialRing)
• decomposeMonomialAlgebra(RingMap)