# Matrix // Matrix -- factor a map through another

## Synopsis

• Usage:
f//g
g\\f
• Operator: //
• Inputs:
• f, , between modules F --> H, or
• g, , between modules G --> H, , , or
• Outputs:
• , a matrix h : F --> G

## Description

If f is a matrix, and g is a matrix or Gröbner basis, then quotient(f,g) is an alternate notation for f//g.

If either f or g is a ring element, then it is taken to be a scalar matrix acting on H. If both are ring elements, then the result is also a ring element. If g is a MonomialIdeal, then it is taken to be the matrix of generators of g. Finally, if g is a GroebnerBasis object, then the Gröbner basis as so far computed is used. In these latter two cases, no Gröbner bases will be computed.

The resulting matrix h is such that f - g*h is the reduction of f modulo a Gröbner basis for the image of g.

If the remainder f - g*h is zero, then the quotient f//g satisfies the equation f === g * (f//g) and the quotient g\\f satisfies the equation f === g * (g\\f).

One common use is the following. If an ideal contains 1, then we may write 1 in terms of the generators of the ideal. First we make an ideal.

 ```i1 : A = ZZ/101[x,y,z] o1 = A o1 : PolynomialRing``` ```i2 : F = x^4 - y*z*(1-x)^2 - z - y^3 4 2 3 o2 = x - x y*z - y + 2x*y*z - y*z - z o2 : A``` ```i3 : I = ideal(F,diff(x,F),diff(y,F),diff(z,F)) 4 2 3 3 2 o3 = ideal (x - x y*z - y + 2x*y*z - y*z - z, 4x - 2x*y*z + 2y*z, - x z - ------------------------------------------------------------------------ 2 2 3y + 2x*z - z, - x y + 2x*y - y - 1) o3 : Ideal of A```
Transposing the (row) matrix of generators of the ideal puts the generators on separate lines and shows the degrees.
 ```i4 : transpose gens I o4 = {-4} | x4-x2yz-y3+2xyz-yz-z | {-3} | 4x3-2xyz+2yz | {-3} | -x2z-3y2+2xz-z | {-3} | -x2y+2xy-y-1 | 4 1 o4 : Matrix A <--- A```
Next we test whether 1 is in the ideal.
 ```i5 : 1 % I o5 = 0 o5 : A```
We see that 1 is in the ideal. Now we represent 1 in terms of the generators of I.
 ```i6 : h = 1 // gens I o6 = {4} | -46x3y2-4x2y3+11x4z+4x3yz-2x2y2z+22x3z2+50x2yz2+8x3y+36x2y2-xy3+14 {3} | -39x4y2+x3y3-28x5z-x4yz-50x3y2z+45x4z2+38x3yz2-2x4y-9x3y2-25x2y3+4 {3} | 49x3y3+35x2y4+30x4yz-35x3y2z-33x2y3z-41x3yz2+17x2y2z2+31x3y2-12x2y {3} | -26x3y2z-33x2y3z+15x4z2+33x3yz2+34x2y2z2+30x3z3-42x2yz3-35x3yz-29x ------------------------------------------------------------------------ x3z+48xy2z+11x2z2-26xyz2-12x3-49x2y-7xy2+5y3-44x2z+12xyz-16y2z-13xz2-46y 7x4z-12x2y2z-28x3z2-44x2yz2+3x4-13x3y+8x2y2+24xy3+11x3z-32x2yz+41xy2z-22 3+34xy4+29x3yz-16xy3z+30x2yz2-25xy2z2+4x3y+50x2y2+36xy3+32y4-19x2yz-4xy2 2y2z+15xy3z+20x3z2+2x2yz2-9xy2z2+26x2z3-38xyz3+25x3y-13x3z-25x2yz-50xy2z ------------------------------------------------------------------------ z2+19x2-28xy-y2+22xz+9yz-15z2-49x-11y-35z+28 x2z2+4xyz2-30x3+7x2y-12xy2+45x2z-17xyz+21y2z+29xz2+2yz2-13x2+28xy-20y2- z+39y3z+38xyz2+49y2z2-40x2y+43xy2+34y3-26x2z+27xyz-3y2z+49xz2+5yz2-2x2+ -37y3z-27x2z2-43xyz2+19y2z2-15xz3+yz3+x2y-14x2z+49xyz+7y2z+15xz2-39yz2- ------------------------------------------------------------------------ | 17xz+26yz-7x-19y-47z | 50xy-30y2+15xz-38yz-40z2+35x-43y+26z-34 | 46z3-2xy+47xz+20yz+9z2+y+6z-1 | 4 1 o6 : Matrix A <--- A``` ```i7 : gens I * h o7 = | 1 | 1 1 o7 : Matrix A <--- A```