Given $R = S/I$, where $S$ is a polynomial ring, the function testElement finds an element of the ambient ring $S$ whose image in $R$ is a test element of $R$. This is done by finding a minor of the jacobian of $I$ that does not lie in any minimal prime of $I$. This function considers random minors until one is found, instead of computing all minors. Thus, repeated calls will not always produce the same answer.
i1 : R = ZZ/11[x,y,z]/(x^3 + y^3 + z^3); |
i2 : apply(1..5, i -> testElement(R)) 2 2 2 2 2 o2 = (-2y , -2z , -y , 2y , 4x ) o2 : Sequence |
If the option AssumeDomain (default value false) is set to true, then testElement does not compute the minimal primes of $I$. This can result in a substantial speedup in some cases.
The object testElement is a method function with options.