<?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>isInjective -- whether a map is injective</title> <link rel="stylesheet" type="text/css" href="../../../../Macaulay2/Style/doc.css"/> </head> <body> <table class="buttons"> <tr> <td><div><a href="_is__Input__File_lp__File_rp.html">next</a> | <a href="_is__Infinite.html">previous</a> | <a href="_is__Input__File_lp__File_rp.html">forward</a> | <a href="_is__Infinite.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>isInjective -- whether a map is injective</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>isInjective f</tt></div> </dd></dl> </div> </li> <li><div class="single">Inputs:<ul><li><span><tt>f</tt>, <span>a <a href="___Matrix.html">matrix</a></span>, or <span>a <a href="___Ring__Map.html">ring map</a></span></span></li> </ul> </div> </li> <li><div class="single">Outputs:<ul><li><span><span>a <a href="___Boolean.html">Boolean value</a></span>, whether the kernel is zero</span></li> </ul> </div> </li> </ul> </div> <div class="single"><h2>Description</h2> <div>This function computes the kernel, and checks whether it is zero.<table class="examples"><tr><td><pre>i1 : R = QQ[a..d];</pre> </td></tr> <tr><td><pre>i2 : F = matrix{{a,b},{c,d}} o2 = | a b | | c d | 2 2 o2 : Matrix R <--- R</pre> </td></tr> <tr><td><pre>i3 : isInjective F o3 = true</pre> </td></tr> <tr><td><pre>i4 : G = substitute(F, R/(det F)) o4 = | a b | | c d | R 2 R 2 o4 : Matrix (-----------) <--- (-----------) - b*c + a*d - b*c + a*d</pre> </td></tr> <tr><td><pre>i5 : isInjective G o5 = false</pre> </td></tr> </table> <p/> Similarly for ring maps:<table class="examples"><tr><td><pre>i6 : S = QQ[r,s,t];</pre> </td></tr> <tr><td><pre>i7 : phi = map(S,R,{r^3, r^2*s, r*s*t, s^3}) 3 2 3 o7 = map(S,R,{r , r s, r*s*t, s }) o7 : RingMap S <--- R</pre> </td></tr> <tr><td><pre>i8 : isInjective phi o8 = false</pre> </td></tr> <tr><td><pre>i9 : S' = coimage phi o9 = S' o9 : QuotientRing</pre> </td></tr> <tr><td><pre>i10 : phi' = phi * map(R,S') 3 2 3 o10 = map(S,S',{r , r s, r*s*t, s }) o10 : RingMap S <--- S'</pre> </td></tr> <tr><td><pre>i11 : isInjective phi' o11 = true</pre> </td></tr> </table> </div> </div> <div class="single"><h2>Caveat</h2> <div>One could imagine a faster routine for this. If you write one, please send it to us!</div> </div> <div class="single"><h2>See also</h2> <ul><li><span><a href="_kernel.html" title="kernel of a ringmap, matrix, or chain complex">kernel</a> -- kernel of a ringmap, matrix, or chain complex</span></li> <li><span><a href="_is__Surjective.html" title="whether a map is surjective">isSurjective</a> -- whether a map is surjective</span></li> <li><span><a href="_coimage.html" title="coimage of a map">coimage(RingMap)</a> -- coimage of a map</span></li> <li><span><a href="_determinant.html" title="determinant of a matrix">determinant</a> -- determinant of a matrix</span></li> <li><span><a href="_substitution_spand_spmaps_spbetween_springs.html" title="">substitution and maps between rings</a></span></li> </ul> </div> <div class="waystouse"><h2>Ways to use <tt>isInjective</tt> :</h2> <ul><li>isInjective(Matrix)</li> <li>isInjective(RingMap)</li> </ul> </div> </div> </body> </html>