kernel(RingMap) -- kernel of a ringmap

Synopsis

• Usage:
kernel f
• Function: kernel
• Inputs:
• f, , R --> S
• Optional inputs:
• SubringLimit => an integer, default value infinity, stop the computation after this many elements of the kernel have been found
• Outputs:
• an ideal, an ideal of R

Description

 `i1 : R = QQ[a..d];` `i2 : S = QQ[s,t];` ```i3 : F = map(S,R,{s^3, s^2*t, s*t^2, t^3}) 3 2 2 3 o3 = map(S,R,{s , s t, s*t , t }) o3 : RingMap S <--- R``` ```i4 : ker F 2 2 o4 = ideal (c - b*d, b*c - a*d, b - a*c) o4 : Ideal of R``` ```i5 : G = map(S,R,{s^5, s^3*t^2-t, s*t-s, t^5}) 5 3 2 5 o5 = map(S,R,{s , s t - t, s*t - s, t }) o5 : RingMap S <--- R``` ```i6 : ker(G, SubringLimit=>1) 2 10 2 7 2 7 2 2 4 3 5 6 3 3 o6 = ideal(a c + 10a b*c - 5a c + 25a b c + 2a c - 5a*b*c - 5a*b c + ------------------------------------------------------------------------ 6 5 2 3 3 2 2 3 4 2 2 3 2 5a*c - a*b + 10a b c - 15a b*c - 5a*b c - 5a*b + 25a b c - 5a c - ------------------------------------------------------------------------ 5 4 3 2 2 2 c + a - 10a*b + 20a b*c - 10a*b + 5a c - 5a*b - a) o6 : Ideal of R```
In the case when everything is homogeneous, Hilbert functions are used to speed up the computations.

Caveat

It should be possible to interrupt the computation and restart it, but this has not yet been implemented.