Various options which can (vastly) speed up the computation of whether a ring is F-injective.
If AssumeCM=>true then it only checks the Frobenius action on top cohomology (which is typically much faster). The default value is false. Note, that it can give an incorrect answer however if the non-injective Frobenius occurs in a lower degree, as it does in this example of the cone over a supersingular elliptic curve times P1.
i1 : S = ZZ/3[xs, ys, zs, xt, yt, zt]; |
i2 : EP1 = ZZ/3[x,y,z,s,t]/ideal(x^3+y^2*z-x*z^2); |
i3 : f = map(EP1, S, {x*s, y*s, z*s, x*t, y*t, z*t}); o3 : RingMap EP1 <--- S |
i4 : R = S/(ker f); |
i5 : time isFinjective(R) -- used 1.20615 seconds o5 = false |
i6 : time isFinjective(R, AssumeCM=>true) -- used 0.438243 seconds o6 = true |
If AssumedReduced=>true (default true) then the bottom local cohomology is avoided (this means the Frobenius action on the top potentially nonzero Ext is not computed).
If AssumeNormal=>true (default false) then certain cohomologies of the local cohomology can be avoided.