pushforward1

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 monomialCurve.

     i1 = R = ZZ/101[a..d]
     
     o1 = R
     
     o1 : PolynomialRing
     
     i2 = S = ZZ/101[s,t]
     
     o2 = S
     
     o2 : PolynomialRing
     
     i3 = f = map(S,R,matrix{{s^4, s^3*t, s*t^3, t^4}})
     
     o3 = map(S,R,| s4 s3t st3 t4 |)
     
     o3 : RingMap S <--- R
     
     i4 = pushforward1(f,S^1)
     
     o4 = | bc-ad c3-bd2 ac2-b2d b3-a2c |
     
                  1       4
     o4 : Matrix R  <--- R
     

This function accepts the following optional arguments. For each, the possible values are given. If a default value is not given, that means that the best choice depending on the input is given.

  • Strategy -- The computation strategy to use. If none is given, chooses heuristically the best one. Possible values are
  • NonLinear
  • Linear
  • UseHilbertFunction -- true or false. The default is to use it if possible

  • MonomialOrder -- The monomial order to use for the resulting Groebner basis computation. Possible values are
  • EliminationOrder -- the default
  • ProductOrder
  • Lex

  • DegreeLimit -- The maximum degree to which to compute, computed in terms of the degrees of the ring map 'f'. For example, if f consists of cubics, then to find a quadratic relation, this option should be set to at least 6, e.g. DegreeLimit => 6. The default is 'infinity'
  • PairLimit -- The number of s pair events to compute. The default is 'infinity'
  • For example,

         i5 = pushforward1(f,S^1,MonomialOrder=>ProductOrder)
         
         o5 = | bc-ad c3-bd2 ac2-b2d b3-a2c |
         
                      1       4
         o5 : Matrix R  <--- R
         
    performs the Groebner computation using a product order rather than the default elimination order.

    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.

         i6 = f = map(S,R,matrix{{s^4, s^3*t, s*t^3, t^4}})
         
         o6 = map(S,R,| s4 s3t st3 t4 |)
         
         o6 : RingMap S <--- R
         
         i7 = pushforward1(f,S^1,DegreeLimit=>4)
         
         o7 = 0
         
                      1
         o7 : Matrix R  <--- 0
         
    After interrupting a computation (using control-C), you may view the equations so far obtained using
         i8 = pushforward1(f,S^1,PairLimit=>0)
         
         o8 = | bc-ad c3-bd2 ac2-b2d b3-a2c |
         
                      1       4
         o8 : Matrix R  <--- R
         
    Types used:
  • PushforwardComputation
  • SubringComputation
  • Go to main index.

    Go to concepts index.