fix symmetricAlgebra so it provides a Heft option to the variables
fix symmetricAlgebra so it returns a tower ?

Date: Sun, 29 Oct 2006 16:24:58 -0600 (CST)
From: Dan Grayson <dan@math.uiuc.edu>
To: "Amelia Taylor" <Amelia.Taylor@ColoradoCollege.edu>,
        Sorin Popescu <sorin@math.sunysb.edu>
CC: dan@math.uiuc.edu, mike@math.cornell.edu
Subject: symmetricAlgebra
Reply-to: dan@math.uiuc.edu


There is a little problem right now in naming the variables in a symmetric
algebra, in that the old names are not used:

    i3 : symmetricAlgebra (QQ[x])^3
    -- warning: some variables have non-positive first component of degree
    --          use Heft option to specify a positive form
    --          or use Adjust and Repair to set up degrees internally

    o3 = QQ [p , p , p , p , Degrees => {{1, 0}, {1, 0}, {1, 0}, {0, 1}}]
	      0   1   2   3

    o3 : PolynomialRing

I would like to change the code so it returns a polynomial ring over the ring
of the module given to it, so in this example it would return QQ[x][p_0
.. p_2].  That might break a bit of your code temporarily, but one of the most
common uses of a symmetric algebra is to take Proj of it, and for that we would
like it to be an algebra over the correct ring!

I think I would also like to install an option for Heft if the user doesn't
install anything for Heft, Adjust, or Repair, so the warning message above
doesn't appear.

If that causes a problem, you can use "flattenRing", a new function that
returns a flatten polynomial ring and the inverse isomorphisms with the
original ring:

i4 : R = QQ[x]

o4 = R

o4 : PolynomialRing

i5 : A = R[a,b,c]
-- warning: some variables have non-positive first component of degree
--          use Heft option to specify a positive form
--          or use Adjust and Repair to set up degrees internally

o5 = A

o5 : PolynomialRing

i6 : flattenRing A
-- warning: some variables have non-positive first component of degree
--          use Heft option to specify a positive form
--          or use Adjust and Repair to set up degrees internally

o6 = (QQ [a, b, c, x, Degrees => {{1}, {1}, {1}, {0}}, MonomialOrder => {GRevLex => {1, 1, 1}, Position => Up, GRevLex => {1}, Position => Up}], map(QQ [a, b, c, x, Degrees => {{1}, {1},
     ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     {1}, {0}}, MonomialOrder => {GRevLex => {1, 1, 1}, Position => Up, GRevLex => {1}, Position => Up}],A,{a, b, c, x}), map(A,QQ [a, b, c, x, Degrees => {{1}, {1}, {1}, {0}},
     ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
     MonomialOrder => {GRevLex => {1, 1, 1}, Position => Up, GRevLex => {1}, Position => Up}],{a, b, c, x}))

o6 : Sequence

Let me know if you see a serious problem with that.

