This verifies if a ring of finite type over a prime field is F-injective or not. Over a more general field this checks the F-injectivity of the relative Frobenius. We begin with an example of an F-injective ring that is not F-pure (taken from the work of Anurag Singh).
i1 : S = ZZ/3[a,b,c,d,t]; |
i2 : m = 4; |
i3 : n = 3; |
i4 : M = matrix{ {a^2 + t^m, b, d}, {c, a^2, b^n-d} }; 2 3 o4 : Matrix S <--- S |
i5 : I = minors(2, M); o5 : Ideal of S |
i6 : R = S/I; |
i7 : isFinjective(R) o7 = true |
i8 : isFpure(R) o8 = false |
Next let’s form the cone over P1 ×E where E is an elliptic curve. We begin with a supersingular elliptic curve. This should be F-injective and only if it is F-pure.
i9 : S = ZZ/3[xs, ys, zs, xt, yt, zt]; |
i10 : EP1 = ZZ/3[x,y,z,s,t]/ideal(x^3+y^2*z-x*z^2); --supersingular elliptic curve |
i11 : f = map(EP1, S, {x*s, y*s, z*s, x*t, y*t, z*t}); o11 : RingMap EP1 <--- S |
i12 : R = S/(ker f); |
i13 : isFinjective(R) o13 = false |
i14 : isFpure(R) o14 = false |
Now we do a similar computation this time with an ordinary elliptic curve.
i15 : S = ZZ/3[xs, ys, zs, xt, yt, zt]; |
i16 : EP1 = ZZ/3[x,y,z,s,t]/ideal(y^2*z-x^3+x*y*z); --ordinary elliptic curve |
i17 : f = map(EP1, S, {x*s, y*s, z*s, x*t, y*t, z*t}); o17 : RingMap EP1 <--- S |
i18 : R = S/(ker f); |
i19 : isFinjective(R) o19 = true |
i20 : isFpure(R) o20 = true |