The function isFRational determines whether a ring is $F$-rational. If the option AtOrigin (default value false) is set to true, it will only check if the ring is $F$-rational at the origin (this can be slower). If the option AssumeCM (default value false) is set to true, it will not verify that the ring is Cohen-Macaulay.
i1 : T = ZZ/5[x,y]; |
i2 : S = ZZ/5[a,b,c,d]; |
i3 : g = map(T, S, {x^3, x^2*y, x*y^2, y^3}); o3 : RingMap T <--- S |
i4 : R = S/(ker g); |
i5 : isFRational(R) o5 = true |
i6 : R = ZZ/7[x,y,z]/(x^3 + y^3 + z^3); |
i7 : isFRational(R) o7 = false |
Below is a more interesting example, of a ring that is $F$-rational but not $F$-regular. This example first appeared in A. K. Singh's work on deformation of $F$-regularity.
i8 : S = ZZ/3[a,b,c,d,t]; |
i9 : M = matrix{{a^2 + t^4, b, d}, {c, a^2, b^3 - d}}; 2 3 o9 : Matrix S <--- S |
i10 : I = minors(2, M); o10 : Ideal of S |
i11 : R = S/I; |
i12 : isFRational(R) o12 = true |
The option AssumeDomain is used when computing a test element. The option FrobeniusRootStrategy is passed to internal frobeniusRoot calls.
This function assumes that the spectrum of the ring is connected. Like isCohenMacaulay, if given a non-equidimensional $F$-rational ring (e.g., a ring whose spectrum has two connected components of different dimensions), isFRational will return false.
The object isFRational is a method function with options.