Macaulay2 » Documentation
Packages » SubalgebraBases :: isFullIntersection
next | previous | forward | backward | up | index | toc

isFullIntersection -- check correctness of intersection computation



Checks if the algorithm for computing the intersection of two subrings in the function intersect produced a subalgebra basis for the intersection.

i1 : R = QQ[x,y];
i2 : I = ideal(x^3 + x*y^2 + y^3);

o2 : Ideal of R
i3 : Q = R/I;
i4 : S1 = subring {x^2, x*y};
i5 : S2 = subring {x, y^2};
i6 : S = intersect(S1, S2);
i7 : isFullIntersection S

o7 = true

This test is one-sided: if the function isFullIntersection returns false, then the generators of the given subring may still generate the intersection as a subalgebra basis.

i8 : R = QQ[x,y];
i9 : S1 = subring {x^3, x^2*y};
i10 : S2 = subring {x^4, y};
i11 : S = intersect(S1, S2, Limit => 15, CheckFullIntersection => false);
i12 : gens S

o12 = | x4y2 x8y x12 |

              1      3
o12 : Matrix R  <-- R
i13 : isFullIntersection S

o13 = false
i14 : isSAGBI S

o14 = true

If the function isFullIntersection returns false then, there are a few different possibilities: First, the composite subring $S$ may have a finite subalgebra basis that could be found by setting the option SAGBILimitType to its default value of Fixed or by using a higher Limit option in intersect. Second, $S$ may not have a finite subalgebra basis but the intersection does have a finite subalgebra basis. In this case, the output may be a generating set for the full intersection, but cannot be verified by the algorithm. Third, the intersection of the input algebras may not have a finite subalgebra basis, and so the composite subring does not have a finite subalgebra basis. In this case, the computed generators may be a generating set (but not a subalgebra basis) for the intersection but the algorithm cannot guarantee it.

See also

Ways to use isFullIntersection :

For the programmer

The object isFullIntersection is a method function.