Macaulay2 » Documentation
Packages » QuillenSuslin :: qsIsomorphism
next | previous | forward | backward | up | index | toc

qsIsomorphism -- computes an isomorphism between a free module and a given projective module

Synopsis

Description

Given a projective module M over a polynomial ring with coefficients in QQ, ZZ, or ZZ/p with p a prime integer, this method uses algorithms of Logar-Sturmfels and Fabianska-Quadrat to compute an isomorphism from a free module F to the projective module M. The following gives examples of constructing such isomorphisms in the cases where the module is a cokernel, kernel, image, or coimage of a unimodular matrix.
i1 : R = ZZ/101[x,y,z]

o1 = R

o1 : PolynomialRing
i2 : f = matrix{{x^2*y+1,x+y-2,2*x*y}}

o2 = | x2y+1 x+y-2 2xy |

             1      3
o2 : Matrix R  <-- R
i3 : isUnimodular f

o3 = true
i4 : P1 = coker transpose f -- Construct the cokernel of the transpose of f.

o4 = cokernel {-3} | x2y+1 |
              {-1} | x+y-2 |
              {-2} | 2xy   |

                            3
o4 : R-module, quotient of R
i5 : isProjective P1

o5 = true
i6 : rank P1

o6 = 2
i7 : phi1 = qsIsomorphism P1

o7 = {-3} | 50x 0 |
     {-1} | 0   1 |
     {-2} | -1  0 |

                    2
o7 : Matrix P1 <-- R
i8 : isIsomorphism phi1

o8 = true
i9 : image phi1 == P1

o9 = true
i10 : P2 = ker f -- Construct the kernel of f.

o10 = image {3} | 0         x+y-2             y2-2y           |
            {1} | xy        -x2y-xy2+2xy-1    -xy3+2xy2-y     |
            {2} | 50x+50y+1 -50xy-50y2-x-2y+2 -50y3-2y2+2y-50 |

                              3
o10 : R-module, submodule of R
i11 : isProjective P2

o11 = true
i12 : rank P2

o12 = 2
i13 : phi2 = qsIsomorphism P2

o13 = {3} | 0 0 |
      {4} | 1 0 |
      {5} | 0 1 |

                     2
o13 : Matrix P2 <-- R
i14 : isIsomorphism phi2

o14 = true
i15 : image phi2 == P2

o15 = true
i16 : P3 = image f -- Construct the image of f.

o16 = image | x2y+1 x+y-2 2xy |

                              1
o16 : R-module, submodule of R
i17 : isProjective P3

o17 = true
i18 : rank P3

o18 = 1
i19 : phi3 = qsIsomorphism P3

o19 = {3} | -1   |
      {1} | 0    |
      {2} | -50x |

                     1
o19 : Matrix P3 <-- R
i20 : isIsomorphism phi3

o20 = true
i21 : image phi3 == P3

o21 = true
i22 : P4 = coimage f -- Construct the coimage of f.

o22 = cokernel {3} | 0         x+y-2             y2-2y           |
               {1} | xy        -x2y-xy2+2xy-1    -xy3+2xy2-y     |
               {2} | 50x+50y+1 -50xy-50y2-x-2y+2 -50y3-2y2+2y-50 |

                             3
o22 : R-module, quotient of R
i23 : isProjective P4

o23 = true
i24 : rank P4

o24 = 1
i25 : phi4 = qsIsomorphism P4

o25 = {3} | -1   |
      {1} | 0    |
      {2} | -50x |

                     1
o25 : Matrix P4 <-- R
i26 : isIsomorphism phi4

o26 = true
i27 : image phi4 == P4

o27 = true

See also

Ways to use qsIsomorphism :

For the programmer

The object qsIsomorphism is a method function with options.