Check finiteness of ring map with SAGE

60 Views Asked by At

(I asked this question in a SAGE-specialized forum --see here--, but did not received an answer there sofar. I therefore decided to post the question also here.)

Let $R \rightarrow S$ be a ring map. I would like to check, using SAGE, if $S$ is finite as an $R$-module. In my case, $R$ and $S$ can be taken as polynomial rings in finitely many variables over a fixed finite field and the map $R \rightarrow S$ is given by some explicit polynomial functions. Is there some reasonable way to perform this?

I tried to implement this in some naive way, using the methods for ring extensions described here:

 k = GF(17)
 R.<y> = k['y']
 S.<z> = R['z']
 L = S.over(R)
 L.is_finite_over()

This produces the following error (in cocalc, sage 10.1):

1598             pass<br/>
1599         b = (<RingExtension_generic?>b)._base<br/>
-> 1600     raise NotImplementedError<br/>
   1601 <br/>
1602 cpdef _is_finite_over(self, CommutativeRing base):<br/>
NotImplementedError:<br/>

I do not understand what causes the error. According to the description of "is_finite_over", the output in this minimal example should be simply "False". Note that when I replace $R$ by (say) $GF(5^2)$ and $S$ by $GF(5^4)$ then the output is "true", which is correct. Can it be that the function "is_finite_over" only works for field extensions, not general ring extensions (in contrast to what is said under the link)?

Whatever the reason for the described error is, how do I check finiteness of $S$ as an $R$-module with SAGE?

1

There are 1 best solutions below

3
On

NotImplementedError means that it is not implemented. is_finite_over appears to be implemented in only very limited settings. Looking at the code, my guess is that it can't tell that S is finite over R; if it could, it would return True.

I don't know what answer you're expecting. What is the relationship between y and z?