<p>The <strong class="pkg">GAP</strong> representation of complexes of finitley presented <strong class="pkg">homalg</strong> objects.</p>
<p>(It is a representation of the <strong class="pkg">GAP</strong> category <code class="func">IsHomalgComplex</code> (<a href="chap6_mj.html#X8166F9FD7BFDA207"><span class="RefLink">6.1-1</span></a>), which is a subrepresentation of the <strong class="pkg">GAP</strong> representation <code class="code">IsFinitelyPresentedObjectRep</code>.)</p>
<p>The <strong class="pkg">GAP</strong> representation of cocomplexes of finitley presented <strong class="pkg">homalg</strong> objects.</p>
<p>(It is a representation of the <strong class="pkg">GAP</strong> category <code class="func">IsHomalgComplex</code> (<a href="chap6_mj.html#X8166F9FD7BFDA207"><span class="RefLink">6.1-1</span></a>), which is a subrepresentation of the <strong class="pkg">GAP</strong> representation <code class="code">IsFinitelyPresentedObjectRep</code>.)</p>
<p>The first syntax creates a complex (i.e. chain complex) with the single <strong class="pkg">homalg</strong> object <var class="Arg">M</var> at (homological) degree <var class="Arg">d</var>.</p>
<p>The second syntax creates a complex with the single <strong class="pkg">homalg</strong> morphism <var class="Arg">phi</var>, its source placed at (homological) degree <var class="Arg">d</var> (and its target at <var class="Arg">d</var><span class="SimpleMath">\(-1\)</span>).</p>
<p>The third syntax creates a complex (i.e. chain complex) with the single <strong class="pkg">homalg</strong> (co)complex <var class="Arg">C</var> at (homological) degree <var class="Arg">d</var>.</p>
<p>The fourth syntax creates a complex with the single <strong class="pkg">homalg</strong> (co)chain morphism <var class="Arg">cm</var> (--> <code class="func">HomalgChainMorphism</code> (<a href="chap7_mj.html#X853361547FB213CA"><span class="RefLink">7.2-1</span></a>)), its source placed at (homological) degree <var class="Arg">d</var> (and its target at <var class="Arg">d</var><span class="SimpleMath">\(-1\)</span>).</p>
<p>If <var class="Arg">d</var> is not provided it defaults to zero in all cases. <br /> To add a morphism (resp. (co)chain morphism) to a complex use <code class="func">Add</code> (<a href="chap6_mj.html#X7F10893B78FEDEB7"><span class="RefLink">6.5-1</span></a>).</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">M := HomalgMatrix( "[ 2, 3, 4, 5, 6, 7 ]", 2, 3, zz );</span>
<A 2 x 3 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">M := LeftPresentation( M );</span>
<A non-torsion left module presented by 2 relations for 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">N := HomalgMatrix( "[ 2, 3, 4, 5, 6, 7, 8, 9 ]", 2, 4, zz );</span>
<A 2 x 4 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">N := LeftPresentation( N );</span>
<A non-torsion left module presented by 2 relations for 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">mat := HomalgMatrix( "[ \
<span class="GAPprompt">></span> <span class="GAPinput">0, 3, 6, 9, \</span>
<span class="GAPprompt">></span> <span class="GAPinput">0, 2, 4, 6, \</span>
<span class="GAPprompt">></span> <span class="GAPinput">0, 3, 6, 9 \</span>
<span class="GAPprompt">></span> <span class="GAPinput">]", 3, 4, zz );
<A 3 x 4 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := HomalgMap( mat, M, N );</span>
<A "homomorphism" of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsMorphism( phi );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">phi;</span>
<A homomorphism of left modules>
</pre></div>
<p>The first possibility:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">C := HomalgComplex( N );</span>
<A non-zero graded homology object consisting of a single left module at degre\
e 0>
<span class="GAPprompt">gap></span> <span class="GAPinput">Add( C, phi );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C;</span>
<A complex containing a single morphism of left modules at degrees [ 0 .. 1 ]>
</pre></div>
<p>The second possibility:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">C := HomalgComplex( phi );</span>
<A non-zero acyclic complex containing a single morphism of left modules at de\
grees [ 0 .. 1 ]>
</pre></div>
<p>The first syntax creates a cocomplex (i.e. cochain complex) with the single <strong class="pkg">homalg</strong> object <var class="Arg">M</var> at (cohomological) degree <var class="Arg">d</var>.</p>
<p>The second syntax creates a cocomplex with the single <strong class="pkg">homalg</strong> morphism <var class="Arg">phi</var>, its source placed at (cohomological) degree <var class="Arg">d</var> (and its target at <var class="Arg">d</var><span class="SimpleMath">\(+1\)</span>).</p>
<p>The third syntax creates a cocomplex (i.e. cochain complex) with the single <strong class="pkg">homalg</strong> cocomplex <var class="Arg">C</var> at (cohomological) degree <var class="Arg">d</var>.</p>
<p>The fourth syntax creates a cocomplex with the single <strong class="pkg">homalg</strong> (co)chain morphism <var class="Arg">cm</var> (--> <code class="func">HomalgChainMorphism</code> (<a href="chap7_mj.html#X853361547FB213CA"><span class="RefLink">7.2-1</span></a>)), its source placed at (cohomological) degree <var class="Arg">d</var> (and its target at <var class="Arg">d</var><span class="SimpleMath">\(+1\)</span>).</p>
<p>If <var class="Arg">d</var> is not provided it defaults to zero in all cases. <br /> To add a morphism (resp. (co)chain morphism) to a cocomplex use <code class="func">Add</code> (<a href="chap6_mj.html#X7F10893B78FEDEB7"><span class="RefLink">6.5-1</span></a>).</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">M := HomalgMatrix( "[ 2, 3, 4, 5, 6, 7 ]", 2, 3, zz );</span>
<A 2 x 3 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">M := RightPresentation( Involution( M ) );</span>
<A non-torsion right module on 3 generators satisfying 2 relations>
<span class="GAPprompt">gap></span> <span class="GAPinput">N := HomalgMatrix( "[ 2, 3, 4, 5, 6, 7, 8, 9 ]", 2, 4, zz );</span>
<A 2 x 4 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">N := RightPresentation( Involution( N ) );</span>
<A non-torsion right module on 4 generators satisfying 2 relations>
<span class="GAPprompt">gap></span> <span class="GAPinput">mat := HomalgMatrix( "[ \
<span class="GAPprompt">></span> <span class="GAPinput">0, 3, 6, 9, \</span>
<span class="GAPprompt">></span> <span class="GAPinput">0, 2, 4, 6, \</span>
<span class="GAPprompt">></span> <span class="GAPinput">0, 3, 6, 9 \</span>
<span class="GAPprompt">></span> <span class="GAPinput">]", 3, 4, zz );
<A 3 x 4 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := HomalgMap( Involution( mat ), M, N );</span>
<A "homomorphism" of right modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsMorphism( phi );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">phi;</span>
<A homomorphism of right modules>
</pre></div>
<p>The first possibility:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">C := HomalgCocomplex( M );</span>
<A non-zero graded cohomology object consisting of a single right module at de\
gree 0>
<span class="GAPprompt">gap></span> <span class="GAPinput">Add( C, phi );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C;</span>
<A cocomplex containing a single morphism of right modules at degrees
[ 0 .. 1 ]>
</pre></div>
<p>The second possibility:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">C := HomalgCocomplex( phi );</span>
<A non-zero acyclic cocomplex containing a single morphism of right modules at\
degrees [ 0 .. 1 ]>
</pre></div>
<p>Check if the <strong class="pkg">homalg</strong> complex <var class="Arg">C</var> is a graded object, i.e. if all maps between the objects in <var class="Arg">C</var> vanish.</p>
<p>In the first syntax the morphism <var class="Arg">phi</var> is added to the (co)chain complex <varclass="Arg">C</var> (--> <a href="chap6_mj.html#X7B31FFA97FEE9B80"><span class="RefLink">6.2</span></a>) as the new <em>highest</em> degree morphism and the altered argument <var class="Arg">C</var> is returned. In case <var class="Arg">C</var> is a chain complex, the highest degree object in <var class="Arg">C</var> and the target of <var class="Arg">phi</var> must be <em>identical</em>. In case <var class="Arg">C</var> is a <em>co</em>chain complex, the highest degree object in <var class="Arg">C</var> and the source of <var class="Arg">phi</var> must be <em>identical</em>.</p>
<p>In the second syntax the matrix <var class="Arg">mat</var> is interpreted as the matrix of the new <em>highest</em> degree morphism <span class="SimpleMath">\(psi\)</span>, created according to the following rules: In case <var class="Arg">C</var> is a chain complex, the highest degree left (resp. right) object <span class="SimpleMath">\(C_d\)</span> in <var class="Arg">C</var> is declared as the target of <span class="SimpleMath">\(psi\)</span>, while its source is taken to be a free left (resp. right) object of rank equal to <code class="code">NumberRows</code>(<var class="Arg">mat</var>) (resp. <code class="code">NumberColumns</code>(<var class="Arg">mat</var>)). For this <code class="code">NumberColumns</code>(<var class="Arg">mat</var>) (resp. <code class="code">NumberRows</code>(<var class="Arg">mat</var>)) must coincide with the <code class="code">NrGenerators</code>(<span class="SimpleMath">\(C_d\)</span>). In case <var class="Arg">C</var> is a <em>co</em>chain complex, the highest degree left (resp. right) object <span class="SimpleMath">\(C^d\)</span> in <var class="Arg">C</var> is declared as the source of <span class="SimpleMath">\(psi\)</span>, while its target is taken to be a free left (resp. right) object of rank equal to <code class="code">NumberColumns</code>(<var class="Arg">mat</var>) (resp. <code class="code">NumberRows</code>(<var class="Arg">mat</var>)). For this <code class="code">NumberRows</code>(<var class="Arg">mat</var>) (resp. <code class="code">Columns</code>(<var class="Arg">mat</var>)) must coincide with the <code class="code">NrGenerators</code>(<span class="SimpleMath">\(C^d\)</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">mat := HomalgMatrix( "[ 0, 1, 0, 0 ]", 2, 2, zz );</span>
<A 2 x 2 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := HomalgMap( mat );</span>
<A homomorphism of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">C := HomalgComplex( phi );</span>
<A non-zero acyclic complex containing a single morphism of left modules at de\
grees [ 0 .. 1 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Add( C, mat );</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">C;</span>
<A sequence containing 2 morphisms of left modules at degrees [ 0 .. 2 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( C );</span>
-------------------------
at homology degree: 2
Z^(1 x 2)
-------------------------
[ [ 0, 1 ],
[ 0, 0 ] ]
the map is currently represented by the above 2 x 2 matrix
------------v------------
at homology degree: 1
Z^(1 x 2)
-------------------------
[ [ 0, 1 ],
[ 0, 0 ] ]
the map is currently represented by the above 2 x 2 matrix
------------v------------
at homology degree: 0
Z^(1 x 2)
-------------------------
<span class="GAPprompt">gap></span> <span class="GAPinput">IsComplex( C );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsAcyclic( C );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsExactSequence( C );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">C;</span>
<A non-zero acyclic complex containing 2 morphisms of left modules at degrees
[ 0 .. 2 ]>
</pre></div>
List( ObjectsOfComplex( C ), ByASmallerPresentation );
if Length( ObjectDegreesOfComplex( C ) ) > 1 then
List( MorphismsOfComplex( C ), DecideZero );
fi;
IsZero( C );
return C;
end );
</pre></div>
<p>This method performs side effects on its argument <var class="Arg">C</var> and returns it.</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">M := HomalgMatrix( "[ 2, 3, 4, 5, 6, 7 ]", 2, 3, zz );</span>
<A 2 x 3 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">M := LeftPresentation( M );</span>
<A non-torsion left module presented by 2 relations for 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">N := HomalgMatrix( "[ 2, 3, 4, 5, 6, 7, 8, 9 ]", 2, 4, zz );</span>
<A 2 x 4 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">N := LeftPresentation( N );</span>
<A non-torsion left module presented by 2 relations for 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">mat := HomalgMatrix( "[ \
<span class="GAPprompt">></span> <span class="GAPinput">0, 3, 6, 9, \</span>
<span class="GAPprompt">></span> <span class="GAPinput">0, 2, 4, 6, \</span>
<span class="GAPprompt">></span> <span class="GAPinput">0, 3, 6, 9 \</span>
<span class="GAPprompt">></span> <span class="GAPinput">]", 3, 4, zz );
<A 3 x 4 matrix over an internal ring>
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := HomalgMap( mat, M, N );</span>
<A "homomorphism" of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsMorphism( phi );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">phi;</span>
<A homomorphism of left modules>
<span class="GAPprompt">gap></span> <span class="GAPinput">C := HomalgComplex( phi );</span>
<A non-zero acyclic complex containing a single morphism of left modules at de\
grees [ 0 .. 1 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( C );</span>
-------------------------
at homology degree: 1
[ [ 2, 3, 4 ],
[ 5, 6, 7 ] ]
Cokernel of the map
Z^(1x2) --> Z^(1x3),
currently represented by the above matrix
-------------------------
[ [ 0, 3, 6, 9 ],
[ 0, 2, 4, 6 ],
[ 0, 3, 6, 9 ] ]
the map is currently represented by the above 3 x 4 matrix
------------v------------
at homology degree: 0
[ [ 2, 3, 4, 5 ],
[ 6, 7, 8, 9 ] ]
Cokernel of the map
Z^(1x2) --> Z^(1x4),
currently represented by the above matrix
-------------------------
</pre></div>
<p>And now:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ByASmallerPresentation( C );</span>
<A non-zero acyclic complex containing a single morphism of left modules at de\
grees [ 0 .. 1 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">Display( C );</span>
-------------------------
at homology degree: 1
Z/< 3 > + Z^(1 x 1)
-------------------------
[ [ 0, 0, 0 ],
[ 2, 0, 0 ] ]
the map is currently represented by the above 2 x 3 matrix
------------v------------
at homology degree: 0
Z/< 4 > + Z^(1 x 2)
-------------------------
</pre></div>
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.