Macaulay2 » Documentation
Packages » Macaulay2Doc » rings » substitution and maps between rings » working with multiple rings » lift » setupLift
next | previous | forward | backward | up | index | toc

# setupLift -- set up lift from one ring to another

- Usage:
    `setupLift (f,R,S)`
    `setupLift g`
- Inputs:
  - f, a function,
  - R, a ring,
  - S, a ring,
  - g, a ring map,

## 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

- setupPromote -- set up promote from one ring to another

## Ways to use setupLift:

- `setupLift(Function,Ring,Ring)`
- `setupLift(RingMap)`

## For the programmer

The object setupLift is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/Macaulay2Doc/functions/setupLift-doc.m2:46:0.