result = intersect(S1, S2)
Computes the intersection of input subrings of the same ambient ring.










The generators of the resulting IntersectedSubring form a partial subalgebra basis for the computed intersection. When CheckFullIntersection is true, the function automatically checks if the generators of the resulting IntersectedSubring generate the intersection of the given subrings. The generators of an instance of IntersectedSubring lie in both input algebras. However, if the function cannot guarantee that the generators of the resulting IntersectedSubring generate the full intersection then a warning is given.
The function works by creating a composite subring $S$ from the input algebras and attempts to compute a subalgebra basis for $S$. If a subalgebra basis $G$ for $S$ is found, then a subset of $G$ forms a subalgebra basis of the intersection of the input algebras. Whenever this happens, the output is guaranteed to be the full intersection of the input algebras and, furthermore, form a subalgebra basis for the intersection. The function isFullIntersection checks whether this is the case, i.e., whether a finite subalgebra basis for $S$ was found. 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 either setting the option SAGBILimitType to its default value of Fixed or by using a higher Limit option. 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 case, the computed generators may be a generating set (but not a subalgebra basis) for the intersection but the algorithm cannot guarantee it.
This function can also be run on a sequence containing both Subring and IntersectedSubring types. When CheckFullIntersection is true, all intermediate intersections are checked for completeness.




