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

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

- Usage:
    `E = endomorphismRing(M,X)`
- Inputs:
  - M, a module,
  - X, a symbol, the base name for the indexed variables serving as generators for the output ring
- Outputs:
  - E, an instance of the type NCQuotientRing,

## 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:

- `endomorphismRing(Module,Symbol)`

## For the programmer

The object endomorphismRing is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/NCAlgebra/NCAlgebraDoc.m2:3323:0.