Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 7ebd25ac536d248d499a3ce2acda963a > files > 4657

Macaulay2-1.3.1-8.fc15.i686.rpm

<?xml version="1.0" encoding="utf-8" ?>  <!-- for emacs: -*- coding: utf-8 -*- -->
<!-- Apache may like this line in the file .htaccess: AddCharset utf-8 .html -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"	 "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg-flat.dtd" >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head><title>lift -- lift to another ring</title>
<link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/>
</head>
<body>
<table class="buttons">
  <tr>
    <td><div><a href="_liftable.html">next</a> | <a href="___Length__Limit.html">previous</a> | <a href="_liftable.html">forward</a> | <a href="___Length__Limit.html">backward</a> | up | <a href="index.html">top</a> | <a href="master.html">index</a> | <a href="toc.html">toc</a> | <a href="http://www.math.uiuc.edu/Macaulay2/">Macaulay2 web site</a></div>

    </td>
  </tr>
</table>
<hr/>
<div><h1>lift -- lift to another ring</h1>
<div class="single"><h2>Synopsis</h2>
<ul><li><div class="list"><dl class="element"><dt class="heading">Usage: </dt><dd class="value"><div><tt>lift(f,R)</tt></div>
</dd></dl>
</div>
</li>
<li><div class="single">Inputs:<ul><li><span><tt>f</tt>, a <a href="___Ring__Element.html">ring element</a>, <a href="___Ideal.html">ideal</a>, or <a href="___Matrix.html">matrix</a></span></li>
<li><span><tt>R</tt>, <span>a <a href="___Ring.html">ring</a></span></span></li>
</ul>
</div>
</li>
<li><div class="single">Outputs:<ul><li><span>a <a href="___Ring__Element.html">ring element</a>, <a href="___Ideal.html">ideal</a>, or <a href="___Matrix.html">matrix</a>, over the ring <tt>R</tt></span></li>
</ul>
</div>
</li>
<li><div class="single"><a href="_using_spfunctions_spwith_spoptional_spinputs.html">Optional inputs</a>:<ul><li><span><tt>Verify => </tt><span><span>a <a href="___Boolean.html">Boolean value</a></span>, <span>default value true</span>, whether to give an error message if lifting is not possible, or, alternatively, to return <a href="_null.html" title="the unique member of the empty class">null</a></span></span></li>
</ul>
</div>
</li>
</ul>
</div>
<div class="single"><h2>Description</h2>
<div><p>(Disambiguation: for division of matrices, which is thought of as lifting one homomorphism over another, see instead <a href="___Matrix_sp_sl_sl_sp__Matrix.html" title="factor a map through another">Matrix // Matrix</a>.  For lifting a map between modules to a map between their free resolutions, see <a href="_extend.html" title="extend a module map to a chain map, if possible">extend</a>.)</p>
<p>The ring <tt>R</tt> should be one of the base rings associated with the ring of <tt>f</tt>.  An error is raised if <tt>f</tt> cannot be lifted to <tt>R</tt>.</p>
<p>The first example is lifting from the fraction field of R to R.</p>
<table class="examples"><tr><td><pre>i1 : lift(4/2,ZZ)

o1 = 2</pre>
</td></tr>
<tr><td><pre>i2 : R = ZZ[x];</pre>
</td></tr>
<tr><td><pre>i3 : f = ((x+1)^3*(x+4))/((x+4)*(x+1))

      2
o3 = x  + 2x + 1

o3 : frac(R)</pre>
</td></tr>
<tr><td><pre>i4 : lift(f,R)

      2
o4 = x  + 2x + 1

o4 : R</pre>
</td></tr>
</table>
<p>Another use of lift is to take polynomials in a quotient ring and lift them to the polynomial ring.</p>
<table class="examples"><tr><td><pre>i5 : A = QQ[a..d];</pre>
</td></tr>
<tr><td><pre>i6 : B = A/(a^2-b,c^2-d-a-3);</pre>
</td></tr>
<tr><td><pre>i7 : f = c^5

                 2
o7 = 2a*c*d + c*d  + 6a*c + b*c + 6c*d + 9c

o7 : B</pre>
</td></tr>
<tr><td><pre>i8 : lift(f,A)

                 2
o8 = 2a*c*d + c*d  + 6a*c + b*c + 6c*d + 9c

o8 : A</pre>
</td></tr>
<tr><td><pre>i9 : jf = jacobian ideal f

o9 = {1} | 2cd+6c           |
     {1} | c                |
     {1} | 2ad+d2+6a+b+6d+9 |
     {1} | 2ac+2cd+6c       |

             4       1
o9 : Matrix B  &lt;--- B</pre>
</td></tr>
<tr><td><pre>i10 : lift(jf,A)

o10 = {1} | 2cd+6c           |
      {1} | c                |
      {1} | 2ad+d2+6a+b+6d+9 |
      {1} | 2ac+2cd+6c       |

              4       1
o10 : Matrix A  &lt;--- A</pre>
</td></tr>
</table>
<p>Elements may be lifted to any base ring, if such a lift exists.</p>
<table class="examples"><tr><td><pre>i11 : use B;</pre>
</td></tr>
<tr><td><pre>i12 : g = (a^2+2*a-3)-(a+1)^2

o12 = -4

o12 : B</pre>
</td></tr>
<tr><td><pre>i13 : lift(g,A)

o13 = -4

o13 : A</pre>
</td></tr>
<tr><td><pre>i14 : lift(g,QQ)

o14 = -4

o14 : QQ</pre>
</td></tr>
<tr><td><pre>i15 : lift(lift(g,QQ),ZZ)

o15 = -4</pre>
</td></tr>
</table>
<p>The functions <tt>lift</tt> and <a href="_substitute.html" title="substituting values for variables">substitute</a> are useful to move numbers from one kind of coefficient ring to another.</p>
<table class="examples"><tr><td><pre>i16 : lift(3.0,ZZ)

o16 = 3</pre>
</td></tr>
<tr><td><pre>i17 : lift(3.0,QQ)

o17 = 3

o17 : QQ</pre>
</td></tr>
</table>
<p>A continued fraction method is used to lift a real number to a rational number, whereas <a href="_promote.html" title="promote to another ring">promote</a> uses the internal binary representation.</p>
<table class="examples"><tr><td><pre>i18 : lift(123/2341.,QQ)

       123
o18 = ----
      2341

o18 : QQ</pre>
</td></tr>
<tr><td><pre>i19 : promote(123/2341.,QQ)

       7572049608428139
o19 = ------------------
      144115188075855872

o19 : QQ</pre>
</td></tr>
<tr><td><pre>i20 : factor oo

      3*811*39877*78045679
o20 = --------------------
                57
               2

o20 : Expression of class Divide</pre>
</td></tr>
</table>
<p>For numbers and ring elements, an alternate syntax with <a href="_^.html" title="a binary operator, usually used for powers">^</a> is available, analogous to the use of <a href="__us.html" title="a binary operator, used for subscripting and access to elements">_</a> for <a href="_promote.html" title="promote to another ring">promote</a>.</p>
<table class="examples"><tr><td><pre>i21 : .0001^QQ

        1
o21 = -----
      10000

o21 : QQ</pre>
</td></tr>
<tr><td><pre>i22 : .0001_QQ

        7378697629483821
o22 = --------------------
      73786976294838206464

o22 : QQ</pre>
</td></tr>
</table>
</div>
</div>
<div class="single"><h2>See also</h2>
<ul><li><span><a href="_base__Rings.html" title="store the list of base rings of a ring">baseRings</a> -- store the list of base rings of a ring</span></li>
<li><span><a href="_liftable.html" title="whether lifting to another ring is possible">liftable</a> -- whether lifting to another ring is possible</span></li>
<li><span><a href="_promote.html" title="promote to another ring">promote</a> -- promote to another ring</span></li>
</ul>
</div>
<div class="waystouse"><h2>Ways to use <tt>lift</tt> :</h2>
<ul><li><span>lift(BettiTally,type of ZZ), see <span><a href="___Betti__Tally.html" title="the class of all Betti tallies">BettiTally</a> -- the class of all Betti tallies</span></span></li>
<li>lift(CC,type of QQ)</li>
<li>lift(CC,type of ZZ)</li>
<li>lift(Ideal,type of QQ)</li>
<li>lift(Ideal,type of RingElement)</li>
<li>lift(Ideal,type of ZZ)</li>
<li>lift(Matrix,type of Number)</li>
<li>lift(Matrix,type of QQ,type of QQ)</li>
<li>lift(Matrix,type of QQ,type of ZZ)</li>
<li>lift(Matrix,type of RingElement)</li>
<li>lift(Matrix,type of ZZ,type of ZZ)</li>
<li>lift(QQ,type of QQ)</li>
<li>lift(QQ,type of ZZ)</li>
<li>lift(RR,type of QQ)</li>
<li>lift(RR,type of ZZ)</li>
<li>lift(ZZ,type of ZZ)</li>
</ul>
</div>
</div>
</body>
</html>