# quotient(Ideal,Ideal) -- ideal or submodule quotient

## Description

If I and J are both monomial ideals, then the result will be as well. If I and J are both submodules of the same module, then the result will be an ideal, otherwise if J is an ideal or ring element, then the result is a submodule containing I.

Gröbner bases will be computed as needed.

The colon operator : may be used as an abbreviation of quotient if no options need to be supplied.

If the second input J is a ring element f, then the principal ideal generated by f is used.

The computation is not stored anywhere yet, BUT, it will soon be stored under I.cache.QuotientComputation{J}, or I.QuotientComputation{J}, so that the computation can be restarted after an interrupt.

 `i1 : R = ZZ[a,b,c];` ```i2 : F = a^3-b^2*c-11*c^2 3 2 2 o2 = a - b c - 11c o2 : R``` ```i3 : I = ideal(F,diff(a,F),diff(b,F),diff(c,F)) 3 2 2 2 2 o3 = ideal (a - b c - 11c , 3a , -2b*c, - b - 22c) o3 : Ideal of R``` ```i4 : I : (ideal(a,b,c))^3 2 2 o4 = ideal (11c, 3b, 33a, b*c, b , a*b, a ) o4 : Ideal of R```
If both arguments are submodules, the annihilator of J/I (or (J+I)/I) is returned.
 `i5 : S = QQ[x,y,z];` ```i6 : J = image vars S o6 = image | x y z | 1 o6 : S-module, submodule of S``` ```i7 : I = image symmetricPower(2,vars S) o7 = image | x2 xy xz y2 yz z2 | 1 o7 : S-module, submodule of S``` ```i8 : (I++I) : (J++J) o8 = ideal (z, y, x) o8 : Ideal of S``` ```i9 : (I++I) : x+y+z o9 = image | z y x 0 0 0 | | 0 0 0 z y x | 2 o9 : S-module, submodule of S``` ```i10 : quotient(I,J) o10 = ideal (z, y, x) o10 : Ideal of S``` ```i11 : quotient(gens I, gens J) o11 = {1} | x y z 0 0 0 | {1} | 0 0 0 y z 0 | {1} | 0 0 0 0 0 z | 3 6 o11 : Matrix S <--- S```
Ideal quotients and saturations are useful for manipulating components of ideals. For example,
 ```i12 : I = ideal(x^2-y^2, y^3) 2 2 3 o12 = ideal (x - y , y ) o12 : Ideal of S``` ```i13 : J = ideal((x+y+z)^3, z^2) 3 2 2 3 2 2 2 2 o13 = ideal (x + 3x y + 3x*y + y + 3x z + 6x*y*z + 3y z + 3x*z + 3y*z + ----------------------------------------------------------------------- 3 2 z , z ) o13 : Ideal of S``` ```i14 : L = intersect(I,J) 2 2 2 2 3 2 2 3 4 3 2 2 o14 = ideal (x z - y z , 2x y + 6x y + 6x*y + 2y - 3x z - 3x y*z + 3x*y z ----------------------------------------------------------------------- 3 4 2 2 3 4 3 2 2 3 3 2 + 3y z, x - 6x y - 8x*y - 3y + 6x z + 6x y*z - 6x*y z - 6y z, y z ) o14 : Ideal of S``` ```i15 : L : z^2 2 2 3 o15 = ideal (x - y , y ) o15 : Ideal of S``` ```i16 : L : I == J o16 = true```