pushForward1(f,M,options) -- Given a ring map f : R --> S, and an S-module M, yields a presentation matrix of the R-submodule of M generated by the given (S-module) generators of M.
Warning: this function will be removed, and its function incorporated into that of image and prune.
This is a very basic operation, and is used by several other functions. See, for example, pushForward. Therefore we intend to eliminate it, and merge its function into image after introducing generalized module homomorphisms which map an R-module to an S-module.
As an example, the following fragment computes the ideal of the rational normal curve. This could also be done using monomialCurveIdeal.
i1 : R = ZZ/101[a..d]; |
i2 : S = ZZ/101[s,t]; |
i3 : f = map(S,R,matrix{{s^4, s^3*t, s*t^3, t^4}}) |
i4 : pushForward1(f,S^1) |
The following code performs the Groebner computation using a product order rather than the default elimination order.
i5 : pushForward1(f,S^1,MonomialOrder=>ProductOrder) |
The computation is stashed inside the ring map, until the computation has finished completely. This means that you may interrupt this command, and later restart it. You may alo obtain partial results, as follows.
i6 : f = map(S,R,matrix{{s^4, s^3*t, s*t^3, t^4}}) |
i7 : pushForward1(f,S^1,DegreeLimit=>4) |
After interrupting a computation (using control-C), you may view the equations so far obtained by using the PairLimit option to prevent any further work from being done.
i8 : pushForward1(f,S^1,PairLimit=>0) |
The type PushforwardComputation is used internally by our current implementation.
Ways to use pushForward1 :
Optional arguments :