next | previous | forward | backward | up | top | index | toc | Macaulay2 website
AssociativeAlgebras :: endomorphismRingIdeal

endomorphismRingIdeal -- Find the relations of an endomorphism ring

Synopsis

Description

This method computes the multiplication table of the endomorphism ring of a module $M$ over a commutative ring $R$, and returns this information as an ideal. Since Groebner bases do not (yet!) work for a FreeAlgebra with coefficients in a commutative ring, minimizing these generators and relations must be performed by the user. This will be fixed in a future release.

i1 : Q = QQ[a,b,c]

o1 = Q

o1 : PolynomialRing
i2 : R = Q/ideal{a*b-c^2}

o2 = R

o2 : QuotientRing
i3 : kRes = res(coker vars R, LengthLimit=>7)

      1      3      4      4      4      4      4      4
o3 = R  <-- R  <-- R  <-- R  <-- R  <-- R  <-- R  <-- R
                                                       
     0      1      2      3      4      5      6      7

o3 : ChainComplex
i4 : M = coker kRes.dd_5

o4 = cokernel {4} | 0  -a 0  -c |
              {4} | -b 0  -c 0  |
              {4} | c  0  a  0  |
              {4} | 0  c  0  b  |

                            4
o4 : R-module, quotient of R
i5 : I = endomorphismRingIdeal(M,X)
Using GC ring in VectorArithmetic.
Using GC ring in VectorArithmetic.
Using GC ring in VectorArithmetic.

             2                                     2                       
o5 = ideal (X , X X  - X , X X  - X , X X , X X , X  - X , X X  - X , X X ,
             0   0 1    0   0 2    3   0 3   1 0   1    1   1 2    2   1 3 
     ------------------------------------------------------------------------
                       2                                     2
     X X  - X , X X , X , X X  - X , X X  - X , X X , X X , X  - X , - X  -
      2 0    1   2 1   2   2 3    2   3 0    0   3 1   3 2   3    3     1  
     ------------------------------------------------------------------------
     X  + 1)
      3

o5 : Ideal of R <|X , X , X , X |>
                   0   1   2   3

The endomorphisms corresponding to the variables chosen are cached in the ideal returned by this method, and can be accessed using the key "EndomorphismRingIdealGens".

i6 : maps = I.cache#"EndomorphismRingIdealGens"

o6 = {{4} | 0 0 1 0 |, {4} | 0 0 0 0 |, {4} | 0 0 0 0 |, {4} | 1 0 0 0 |}
      {4} | 0 0 0 0 |  {4} | 0 1 0 0 |  {4} | 0 0 0 1 |  {4} | 0 0 0 0 |
      {4} | 0 0 0 0 |  {4} | 0 0 1 0 |  {4} | 1 0 0 0 |  {4} | 0 0 0 0 |
      {4} | 0 1 0 0 |  {4} | 0 0 0 0 |  {4} | 0 0 0 0 |  {4} | 0 0 0 1 |

o6 : List
i7 : assert(maps_0*maps_2 == maps_3)

Ways to use endomorphismRingIdeal :

For the programmer

The object endomorphismRingIdeal is a method function.