| products/Sources/formale Sprachen/GAP/pkg/modules/doc/chap3.html |
 |
<?xml version= "1.0" encoding= "UTF-8"?>
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns= "http://www.w3.org/1999/xhtml" xml:lang= "en">
< head>
< title>GAP (Modules) - Chapter 3: Quick Start</ title>
< meta http-equiv= "content-type" content= "text/html; charset=UTF-8" />
< meta name= "generator" content= "GAPDoc2HTML" />
< link rel= "stylesheet" type= "text/css" href= "manual.css" />
< script src= "manual.js" type= "text/javascript"></ script>
< script type= "text/javascript">overwriteStyle();</ script>
</ head>
< body class= "chap3" onload= "jscontent()">
< div class= "chlinktop">< span class= "chlink1">Goto Chapter: </ span>< a href= "chap0.html">Top</ a> < a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chapA.html">A</a> <a href="chapB.html">B</a> <a href="chapC.html">C</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap2.html">[Previous Chapter]</a> <a href="chap4.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap3_mj.html">[MathJax on]</a></p>
<p><a id="X7EB860EC84DFC71E" name="X7EB860EC84DFC71E"></a></p>
<div class="ChapSects"><a href="chap3.html#X7EB860EC84DFC71E">3 <span class="Heading">Quick Start</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X8527706586389E29">3.1 <span class="Heading">Why are all examples in this manual over ℤ or <span class="SimpleMath">ℤ/mℤ</span>?</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X85872612814D30B4">3.2 <span class="Heading"><code class="code">gap> ExamplesForHomalg();</code></span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3.html#X7BBB3E988435A713">3.3 <span class="Heading">A typical example</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap3.html#X791E21F47805048A">3.3-1 <span class="Heading">HomHom</span></a>
</span>
</div></div>
</div>
<h3>3 <span class="Heading">Quick Start</span></h3>
<p>This chapter should give you a quick guide to create your first example in <strong class="pkg">homalg</strong>.</p>
<p><a id="X8527706586389E29" name="X8527706586389E29"></a></p>
<h4>3.1 <span class="Heading">Why are all examples in this manual over ℤ or <span class="SimpleMath">ℤ/mℤ</span>?</span></h4>
<p>As the reader might notice, all examples in this manual will be either over ℤ or over one of its residue class rings <span class="SimpleMath">ℤ/mℤ</span>. There are two reasons for this. The first reason is that <strong class="pkg">GAP</strong> does not natively support rings other than ℤ in a <em>sufficient</em> way (--> <a href="chap1.html#X84913827857A1F7B"><span class="RefLink">Rings supported in a sufficient way</span></a>).</p>
<p>The second and more important reason is to underline the fact the all effective homological constructions that are relevant for <strong class="pkg">Modules</strong> have only as much to do with the Gröbnerbasis algorithm as they do with the Hermite algorithm for the ring ℤ; both algorithms are used to effectively solve inhomogeneous linear systems over the respective ring. And <strong class="pkg">Modules</strong> is designed to use rings and matrices over these rings together with all their operations as a black box. In other words: Because <strong class="pkg">Modules</strong> works for <span class="SimpleMath">ℤ</span>, it works by its design for all other computable rings.</p>
<p><a id="X85872612814D30B4" name="X85872612814D30B4"></a></p>
<h4>3.2 <span class="Heading"><code class="code">gap> ExamplesForHomalg();</code></span></h4>
<p>To quickly create a ring for use with <strong class="pkg">Modules</strong> enter<br /> <br /> <code class="code">ExamplesForHomalg();</code><br /> <br /> which will load the package <strong class="pkg">ExamplesForHomalg</strong> (if installed) and provide a step by step guide to create the ring. For the full core functionality you need to install the packages <strong class="pkg">homalg</strong>, <strong class="pkg">HomalgToCAS</strong>, <strong class="pkg">IO_ForHomalg</strong>, <strong class="pkg">RingsForHomalg</strong>, <strong class="pkg">Gauss</strong>, and <strong class="pkg">GaussForHomalg</strong>. They are part of the <strong class="pkg">homalg</strong> project.</p>
<p><a id="X7BBB3E988435A713" name="X7BBB3E988435A713"></a></p>
<h4>3.3 <span class="Heading">A typical example</span></h4>
<p><a id="X791E21F47805048A" name="X791E21F47805048A"></a></p>
<h5>3.3-1 <span class="Heading">HomHom</span></h5>
<p>The following example is taken from Section 2 of <a href="chapBib.html#biBBREACA">[BR06]</a>. <br /> <br /> The computation takes place over the residue class ring <span class="SimpleMath">R=ℤ/2^8ℤ</span> using the generic support for residue class rings provided by the subpackage <strong class="pkg">ResidueClassRingForHomalg</strong> of the <strong class="pkg">MatricesForHomalg</strong> package. For a native support of the rings <span class="SimpleMath">R=ℤ/p^nℤ</span> use the <strong class="pkg">GaussForHomalg</strong> package.</p>
<p>Here we compute the (infinite) long exact homology sequence of the covariant functor <span class="SimpleMath">Hom(Hom(-,ℤ/2^7ℤ),ℤ/2^4ℤ)</span> (and its left derived functors) applied to the short exact sequence<br /> <br /> <span class="SimpleMath">0 -> M_=ℤ/2^2ℤ --alpha_1--> M=ℤ/2^5ℤ --alpha_2--> _M=ℤ/2^3ℤ -> 0</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">zz := HomalgRingOfIntegers( );</span>
Z
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( zz );</span>
<An internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">R := zz / 2^8;</span>
Z/( 256 )
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( R );</span>
<A residue class ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">M := LeftPresentation( [ 2^5 ], R );</span>
<A cyclic left module presented by 1 relation for a cyclic generator>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( M );</span>
Z/( 256 )/< |[ 32 ]| >
<span class="GAPprompt">gap></span> <span class="GAPinput">_M := LeftPresentation( [ 2^3 ], R );</span>
<A cyclic left module presented by 1 relation for a cyclic generator>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( _M );</span>
Z/( 256 )/< |[ 8 ]| >
<span class="GAPprompt">gap></span> <span class="GAPinput">alpha2 := HomalgMap( [ 1 ], M, _M );</span>
<A "homomorphism" of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsMorphism( alpha2 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">alpha2;</span>
<A homomorphism of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( alpha2 );</span>
[ [ 1 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
<span class="GAPprompt">gap></span> <span class="GAPinput">M_ := Kernel( alpha2 );</span>
<A cyclic left module presented by yet unknown relations for a cyclic generato\
r>
<span class="GAPprompt">gap></span> <span class="GAPinput">alpha1 := KernelEmb( alpha2 );</span>
<A monomorphism of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">seq := HomalgComplex( alpha2 );</span>
<An acyclic complex containing a single morphism of left modules at degrees
[ 0 .. 1 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Add( seq, alpha1 );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">seq;</span>
<A sequence containing 2 morphisms of left modules at degrees [ 0 .. 2 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsShortExactSequence( seq );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">seq;</span>
<A short exact sequence containing 2 morphisms of left modules at degrees
[ 0 .. 2 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( seq );</span>
-------------------------
at homology degree: 2
Z/( 256 )/< |[ 4 ]| >
-------------------------
[ [ 8 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 1
Z/( 256 )/< |[ 32 ]| >
-------------------------
[ [ 1 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 0
Z/( 256 )/< |[ 8 ]| >
-------------------------
<span class="GAPprompt">gap></span> <span class="GAPinput">K := LeftPresentation( [ 2^7 ], R );</span>
<A cyclic left module presented by 1 relation for a cyclic generator>
<span class="GAPprompt">gap></span> <span class="GAPinput">L := RightPresentation( [ 2^4 ], R );</span>
<A cyclic right module on a cyclic generator satisfying 1 relation>
<span class="GAPprompt">gap></span> <span class="GAPinput">triangle := LHomHom( 4, seq, K, L, "t" );</span>
<An exact triangle containing 3 morphisms of left complexes at degrees
[ 1, 2, 3, 1 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">lehs := LongSequence( triangle );</span>
<A sequence containing 14 morphisms of left modules at degrees [ 0 .. 14 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">ByASmallerPresentation( lehs );</span>
<A non-zero sequence containing 14 morphisms of left modules at degrees
[ 0 .. 14 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsExactSequence( lehs );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">lehs;</span>
<A non-zero left acyclic complex containing
14 morphisms of left modules at degrees [ 0 .. 14 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Assert( 0, IsLeftAcyclic( lehs ) );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( lehs );</span>
-------------------------
at homology degree: 14
Z/( 256 )/< |[ 4 ]| >
-------------------------
[ [ 4 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 13
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 12
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 11
Z/( 256 )/< |[ 4 ]| >
-------------------------
[ [ 4 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 10
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 9
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 8
Z/( 256 )/< |[ 4 ]| >
-------------------------
[ [ 4 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 7
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 6
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 5
Z/( 256 )/< |[ 4 ]| >
-------------------------
[ [ 4 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 4
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 3
Z/( 256 )/< |[ 8 ]| >
-------------------------
[ [ 2 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 2
Z/( 256 )/< |[ 4 ]| >
-------------------------
[ [ 8 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 1
Z/( 256 )/< |[ 16 ]| >
-------------------------
[ [ 1 ] ]
modulo [ 256 ]
the map is currently represented by the above 1 x 1 matrix
------------v------------
at homology degree: 0
Z/( 256 )/< |[ 8 ]| >
-------------------------
</pre></div>
<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap2.html">[Previous Chapter]</a> <a href="chap4.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chapA.html">A</a> <a href="chapB.html">B</a> <a href="chapC.html">C</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
¤ Dauer der Verarbeitung: 0.8 Sekunden
¤
*© Formatika GbR, Deutschland
|
|