next up previous contents
Next: random_mat Up: Scripts of Macaulay (by Previous: push_forward

push_forward1

Usage:
    <push_forward1 f M N
Given a map f from the current ring R to a ring S and a matrix
presenting a module M over S, the script forms a presentation
matrix for the R-submodule of M generated generators given
for M as an S-module.
    It is assumed that the first ncols f variables in R
have degrees proportional to the column degrees of f.
Parameters:
    f = 1xn matrix
    M = matrix over the same base ring as f
Output values:
    N = matrix over the current ring, whose rows correspond to those
of M.
This script performs a very basic set of operations.  It is used
by several others (see them for descriptions):
1. <subring      ;forms a subring given its generators
2. <push_forward ;writes a module as a module over another ring
3. <diagonal_submodule  
                 ;Finds the submodule generated by n,n forms in a
                 ;bigraded module
4. <from_bigraded
                 ;finds the singly graded module associated to a
                 ;bigraded module by the Segre map.
It can be used directly to compute the "pushforward" of
M as long as the given S-generators of M
generate it over the ring R.
Caveats:
1. If R and S do not have the same characteristic there may
be trouble!
2. If R is a quotient ring and the relations satisfied by R are
not satisfied by the elements of f (so that f is not really a map)
then the effect is to impose the additional relations satisfied by
the variables of R; that is, the effect is as if we first factored
out these relations from S and M.
3. The script does its main work over a new ring SR = S \tensor R
which has two blocks of variables, one from S and one from R.  If
the number of variables in one of these blocks is large and/or if
the degrees of the entries of f are large, there could be problems
with the "degree bound exceeded".  In that case one should use the
idea of the script but do the work "by hand", making many blocks
(and eliminating as many as necessary.)
4. The script returns a set of relations that usually isn't
minimal; of course one can then do an std or nres or... to
find a minimal set of relations (the generators returned
are minimal generators.)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



Sorin Popescu
Fri Feb 14 17:37:19 EST 1997