Macaulay2 » Documentation
Packages » Macaulay2Doc :: setupLift
next | previous | forward | backward | up | index | toc

setupLift -- set up lift from one ring to another

Synopsis

Description

There are two possible ways of implementing lift using setupLift. In the first one, we use a function:

i1 : R=QQ[x]

o1 = R

o1 : PolynomialRing
i2 : S=QQ[y]

o2 = S

o2 : PolynomialRing
i3 : setupPromote map(R,S,{x^2})
i4 : setupLift(a->sum(listForm a, (e,c)->if odd first e then error "not liftable" else c*y^(first e//2)),R,S)
i5 : promote(y^2+2,R)

      4
o5 = x  + 2

o5 : R
i6 : lift(oo,S)

      2
o6 = y  + 2

o6 : S
i7 : lift(x,S,Verify=>false)

In the second one, we define a ring map which is a partial inverse to the promotion map:

i8 : R=QQ[x,y]

o8 = R

o8 : PolynomialRing
i9 : S=R[s]

o9 = S

o9 : PolynomialRing
i10 : setupPromote map(R,S,{x+y})
i11 : setupLift map(S,R,{s,0})
i12 : promote(s^3+2*s-1,R)

       3     2        2    3
o12 = x  + 3x y + 3x*y  + y  + 2x + 2y - 1

o12 : R
i13 : lift(oo,S)

       3
o13 = s  + 2s - 1

o13 : S
i14 : lift(x,S,Verify=>false)

See also

Ways to use setupLift:

For the programmer

The object setupLift is a method function.