Macaulay2 » Documentation
Packages » NCAlgebra :: endomorphismRing
next | previous | forward | backward | up | index | toc

endomorphismRing -- Methods for creating endomorphism rings of modules over a commutative ring

Synopsis

Description

This method computes a presentation for the endomorphism ring of a module over a commutative ring R. The presentation is given as a quotient of an NCPolynomialRing with coefficients in R generated by indexed variables. The second argument specifies the symbol to use for the indexed variables. The presentation this method returns is unlikely to be minimal. Simplifications to the presentation may be made with Link to minimizeRelations.

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 : B = endomorphismRing(M,X)

o5 = B

o5 : NCQuotientRing
i6 : gensI = gens ideal B

                                                                         
o6 = {X X +-X , -X +X X , -X +X X , X X , X X , X X +-X , X X , X X +-X ,
       0 1   0    3  0 2    2  1 2   0 3   1 3   2 3   2   1 0   2 0   1 
     ------------------------------------------------------------------------
                                   2    2        2    2
     X X , X X +-X , X X , X X , X  , X  +-X , X  , X  +-X }
      2 1   3 0   0   3 1   3 2   0    1    1   2    3    3

o6 : List
i7 : gensIMin = minimizeRelations(gensI)

                                2    2
o7 = {X X X +-X , X X X +-X , X  , X  }
       0 2 0   0   2 0 2   2   0    2

o7 : List

The endomorphisms are cached in the endomorphism ring and can be accessed via the key endomorphismRingGens. We verify that X_3 is redundant:

i8 : maps = B.cache.endomorphismRingGens

o8 = {{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 |

o8 : List
i9 : maps_3 == maps_0*maps_2

o9 = true

Ways to use endomorphismRing :

For the programmer

The object endomorphismRing is a method function.