gap> LoadPackage( "ModulePresentations", false ); true gap> LoadPackage( "HomotopyCategories", false ); true gap> HOMALG_IO.show_banners := false;; gap> QQ := HomalgFieldOfRationalsInSingular( ); Q gap> QQ_xy := QQ["x, y"]; Q[x,y] gap> QQ_xy_mod := LeftPresentations( QQ_xy ); Category of left presentations of Q[x,y] gap> K_QQ_xy_mod := HomotopyCategoryByCochains( QQ_xy_mod ); Homotopy category by cochains( Category of left presentations of Q[x,y] ) gap> m := HomalgMatrix("[[0,0,25*y+9,30,0,0,7*y], [0,0,0,0,24*x,0,20*y], [0,0,0,0,0,24,0], [0,0,29*x+27*y+10,0,0,0,0], [0,0,0,0,34,0,0], [0,0,0,0,0,0,0], [0,0,0,33*y,4*y+12,0,42], [0,20*x+34,0,0,0,0,0], [0,0,0,43*x,0,0,24*y], [0,0,0,0,0,0,0]]", 10, 7, QQ_xy ); <A 10 x 7 matrix over an external ring> gap> n := HomalgMatrix("[[0,0,25*y+9], [0,0,725*x+7], [0,10*x+17,0]]", 3, 3, QQ_xy ); <A 3 x 3 matrix over an external ring> gap> M := AsLeftPresentation( QQ_xy_mod, m ); <An object in Category of left presentations of Q[x,y]> gap> Display( M ); 0,0, 25*y+9, 30, 0, 0, 7*y, 0,0, 0, 0, 24*x, 0, 20*y, 0,0, 0, 0, 0, 24,0, 0,0, 29*x+27*y+10,0, 0, 0, 0, 0,0, 0, 0, 34, 0, 0, 0,0, 0, 0, 0, 0, 0, 0,0, 0, 33*y,4*y+12,0, 42, 0,20*x+34,0, 0, 0, 0, 0, 0,0, 0, 43*x,0, 0, 24*y, 0,0, 0, 0, 0, 0, 0 An object in Category of left presentations of Q[x,y] gap> IsZero( M ); false gap> IsProjective( M ); false gap> N := AsLeftPresentation( QQ_xy_mod, n ); <An object in Category of left presentations of Q[x,y]> gap> Display( N ); 0,0, 25*y+9, 0,0, 725*x+7, 0,10*x+17,0 An object in Category of left presentations of Q[x,y] gap> a := HomalgMatrix( "[[1,0,0], [0,1,0], [0,0,1], [0,0,-5/6*y-3/10], [0,0,0], [0,0,0], [0,0,0]]", 7, 3, QQ_xy ); <A 7 x 3 matrix over an external ring> gap> alpha := PresentationMorphism( M, a, N ); <A morphism in Category of left presentations of Q[x,y]> gap> Display( alpha ); 1,0,0, 0,1,0, 0,0,1, 0,0,-5/6*y-3/10, 0,0,0, 0,0,0, 0,0,0 A morphism in Category of left presentations of Q[x,y] gap> IsIsomorphism( alpha ); true gap> M := CreateComplex( K_QQ_xy_mod, [ MorphismIntoZeroObject( M ) ], 0 ); <An object in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ 0 .. 1 ]> gap> ObjectsSupport( M ); [ 0 ] gap> ObjectAt( M, 0 ); <An object in Category of left presentations of Q[x,y]> gap> DifferentialAt( M, 0 ); <A zero, split epimorphism in Category of left presentations of Q[x,y]> gap> N := CreateComplex( K_QQ_xy_mod, [ MorphismIntoZeroObject( N ) ], 0 ); <An object in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ 0 .. 1 ]> gap> ObjectsSupport( N ); [ 0 ] gap> alpha := CreateComplexMorphism( K_QQ_xy_mod, M, [ alpha ], 0, N ); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ 0 .. 1 ]> gap> p_M := ProjectiveResolution( M, true ); <An object in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -3 .. 1 ]> gap> q_M := QuasiIsomorphismFromProjectiveResolution( M, true ); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -3 .. 1 ]> gap> p_N := ProjectiveResolution( N, true ); <An object in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -2 .. 1 ]> gap> q_N := QuasiIsomorphismFromProjectiveResolution( N, true ); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -2 .. 1 ]> gap> p_alpha := MorphismBetweenProjectiveResolutions( alpha, true ); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -3 .. 1 ]> gap> IsIsomorphism( p_alpha ); true gap> MorphismAt( p_alpha, 0 ); <A morphism in Category of left presentations of Q[x,y]> gap> PreCompose( p_alpha, q_N ) = PreCompose(q_M, alpha ); true gap> cone_q_M := StandardConeObject( q_M ); <An object in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -4 .. 1 ]> gap> CohomologySupport( cone_q_M ); # quasi-iso <-> cone is acyclic [ ] gap> iota_q_M := MorphismIntoStandardConeObject( q_M ); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -4 .. 1 ]> gap> Display( iota_q_M ); == 1 ======================= (an empty 0 x 0 matrix) A zero, isomorphism in Category of left presentations of Q[x,y] == 0 ======================= 1,0,0,0,0,0,0, 0,1,0,0,0,0,0, 0,0,1,0,0,0,0, 0,0,0,1,0,0,0, 0,0,0,0,1,0,0, 0,0,0,0,0,1,0, 0,0,0,0,0,0,1 A morphism in Category of left presentations of Q[x,y] == -1 ======================= (an empty 0 x 7 matrix) A zero, split monomorphism in Category of left presentations of Q[x,y] == -2 ======================= (an empty 0 x 8 matrix) A zero, split monomorphism in Category of left presentations of Q[x,y] == -3 ======================= (an empty 0 x 3 matrix) A zero, split monomorphism in Category of left presentations of Q[x,y] == -4 ======================= (an empty 0 x 1 matrix) A zero, split monomorphism in Category of left presentations of Q[x,y] A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) defined by the above data gap> IsWellDefined( iota_q_M ); true gap> pi_q_M := MorphismFromStandardConeObject( q_M ); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -4 .. 1 ]> gap> Display( pi_q_M ); == 1 ======================= (an empty 0 x 0 matrix) A zero, isomorphism in Category of left presentations of Q[x,y] == 0 ======================= (an empty 7 x 0 matrix) A morphism in Category of left presentations of Q[x,y] == -1 ======================= 1,0,0,0,0,0,0, 0,1,0,0,0,0,0, 0,0,1,0,0,0,0, 0,0,0,1,0,0,0, 0,0,0,0,1,0,0, 0,0,0,0,0,1,0, 0,0,0,0,0,0,1 A morphism in Category of left presentations of Q[x,y] == -2 ======================= 1,0,0,0,0,0,0,0, 0,1,0,0,0,0,0,0, 0,0,1,0,0,0,0,0, 0,0,0,1,0,0,0,0, 0,0,0,0,1,0,0,0, 0,0,0,0,0,1,0,0, 0,0,0,0,0,0,1,0, 0,0,0,0,0,0,0,1 A morphism in Category of left presentations of Q[x,y] == -3 ======================= 1,0,0, 0,1,0, 0,0,1 A morphism in Category of left presentations of Q[x,y] == -4 ======================= 1 A morphism in Category of left presentations of Q[x,y] A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) defined by the above data gap> nu := MorphismBetweenStandardConeObjects(q_M, p_alpha, alpha, q_N); <A morphism in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -4 .. 1 ]> gap> IsWellDefined( nu ); true gap> IsZero( nu ); false gap> IsIsomorphism( nu ); true gap> ShiftOfObjectByInteger( p_M, 2 ); <An object in Homotopy category by cochains( Category of left presentations of Q[x,y] ) supported on the interval [ -5 .. -1 ]>
gap> LoadPackage( "Algebroids", false ); true gap> LoadPackage( "HomotopyCategories", false ); true gap> q_O := FinQuiver( "q_O(O0,O1,O2)[x0:O0->O1,x1:O0->O1,x2:O0->O1,y0:O1->O2,y1:O1->O2,y2:O1->O2]" ); FinQuiver( "q_O(O0,O1,O2)[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2]" ) gap> SetLaTeXStringsOfObjects( q_O, [ "\\mathcal{O}_{0}", "\\mathcal{O}_{1}", "\\mathcal{O}_{2}" ] ); gap> SetLaTeXStringsOfMorphisms( q_O, [ "x_0", "x_1", "x_2", "y_0", "y_1", "y_2" ] ); gap> P_O := PathCategory( q_O ); PathCategory( FinQuiver( "q_O(O0,O1,O2)[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2, y2:O1-≻O2]" ) ) gap> rho_O := [ [ P_O.x0y1, P_O.x1y0 ], [ P_O.x0y2, P_O.x2y0 ], [ P_O.x1y2, P_O.x2y1 ] ]; [ [ x0⋅y1:(O0) -≻ (O2), x1⋅y0:(O0) -≻ (O2) ], [ x0⋅y2:(O0) -≻ (O2), x2⋅y0:(O0) -≻ (O2) ], [ x1⋅y2:(O0) -≻ (O2), x2⋅y1:(O0) -≻ (O2) ] ] gap> quotient_P_O := P_O / rho_O; PathCategory( FinQuiver( "q_O(O0,O1,O2)[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2]" ) ) / [ x0⋅y1 = x1⋅y0, x0⋅y2 = x2⋅y0, x1⋅y2 = x2⋅y1 ] gap> QQ := HomalgFieldOfRationals( ); Q gap> k := QQ; Q gap> k_quotient_P_O := k[quotient_P_O]; Q-LinearClosure( PathCategory( FinQuiver( "q_O(O0,O1,O2)[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2]" ) ) / [ x0⋅y1 = x1⋅y0, x0⋅y2 = x2⋅y0, x1⋅y2 = x2⋅y1 ] ) gap> A_O := AlgebroidFromDataTables( k_quotient_P_O ); Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms gap> phi := 2 * A_O.x0 + 3 * A_O.x1 - A_O.x2; <2*x0 + 3*x1 - 1*x2:(O0) -≻ (O1)> gap> A_Oadd := AdditiveClosure( A_O ); AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2, y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) gap> KA_Oadd := HomotopyCategoryByCochains( A_Oadd ); Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) gap> E10 := [ A_O.O0, A_O.O0, A_O.O0 ] / A_Oadd; <An object in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2, y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by 3 underlying objects> gap> E11 := [ A_O.O1, A_O.O1, A_O.O1 ] / A_Oadd; <An object in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2, y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by 3 underlying objects> gap> E12 := [ A_O.O2 ] / A_Oadd; <An object in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2, y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by 1 underlying objects> gap> delta_0 := AdditiveClosureMorphism( > E10, > [ [ A_O.x1, -A_O.x0, ZeroMorphism(A_O.O0, A_O.O1) ], > [ A_O.x2, ZeroMorphism(A_O.O0, A_O.O1), -A_O.x0 ], > [ ZeroMorphism(A_O.O0, A_O.O1), A_O.x2, -A_O.x1 ] ], > E11 ); <A morphism in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2, y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by a 3 x 3 matrix of underlying morphisms> gap> delta_1 := AdditiveClosureMorphism( > E11, > [ [ A_O.y0 ], > [ A_O.y1 ], > [ A_O.y2 ] ], > E12 ); <A morphism in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by a 3 x 1 matrix of underlying morphisms> gap> E1 := CreateComplex( KA_Oadd, [ delta_0, delta_1 ], 0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 .. 2 ]> gap> E20 := [ A_O.O0, A_O.O0, A_O.O0 ] / A_Oadd; <An object in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by 3 underlying objects> gap> E21 := [ A_O.O1] / A_Oadd; <An object in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by 1 underlying objects> gap> delta_0 := AdditiveClosureMorphism( > E20, > [ [ A_O.x0 ], > [ A_O.x1 ], > [ A_O.x2 ] ], > E21 ); <A morphism in AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) defined by a 3 x 1 matrix of underlying morphisms> gap> E2 := CreateComplex( KA_Oadd, [ delta_0 ], 0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 .. 1 ]> gap> E3 := CreateComplex( KA_Oadd, A_O.O0 / A_Oadd, 0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 ]> gap> seq := CreateStrongExceptionalSequence( [ E1, E2, E3 ] ); A strong exceptional sequence in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[ x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) gap> T := DirectSum( [ E1, E2, E3 ] ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 .. 2 ]> gap> RankOfObject( HomStructure( E1, E1 ) ) = 1 and > RankOfObject( HomStructure( E2, E2 ) ) = 1 and > RankOfObject( HomStructure( E3, E3 ) ) = 1; true gap> IsZero( HomStructure( E3, E2 ) ) and > IsZero( HomStructure( E2, E1 ) ) and > IsZero( HomStructure( E3, E1 ) ); true gap> IsZero( HomStructure( T, Shift( T, -2 ) ) ) and > IsZero( HomStructure( T, Shift( T, -1 ) ) ) and > IsZero( HomStructure( T, Shift( T, 1 ) ) ) and > IsZero( HomStructure( T, Shift( T, 2 ) ) ); true gap> RankOfObject( HomStructure( T, T ) ); 12 gap> A_E := AbstractionAlgebroid( seq ); Q-algebroid( {E1,E2,E3}[m1_2_1:E1-≻E2,m1_2_2:E1-≻E2,m1_2_3:E1-≻E2,m2_3_1:E2-≻E3,m2_3_2:E2-≻E3,m2_3_3:E2-≻E3] ) defined by 3 objects and 6 generating morphisms gap> q_E := UnderlyingQuiver( A_E ); FinQuiver( "q(E1,E2,E3)[m1_2_1:E1-≻E2,m1_2_2:E1-≻E2,m1_2_3:E1-≻E2,m2_3_1:E2-≻E3,m2_3_2:E2-≻E3,m2_3_3:E2-≻E3]" ) gap> Assert( 0, Dimension( A_E ) = 12 ); gap> a := IsomorphismIntoAbstractionAlgebroid( seq ); Isomorphism: strong exceptional sequence ⟶ abstraction algebroid gap> r := IsomorphismFromAbstractionAlgebroid( seq ); Isomorphism: abstraction algebroid ⟶ strong exceptional sequence gap> m := A_E.("m1_2_1"); <1*m1_2_1:(E1) -≻ (E2)> gap> Assert( 0, m = ApplyFunctor( a, ApplyFunctor( r, m ) ) ); gap> T_E := TriangulatedSubcategory( seq ); TriangulatedSubcategory( A strong exceptional sequence in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) ) gap> O0 := CreateComplex( KA_Oadd, A_O.("O0") / A_Oadd, 0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 ]> gap> O1 := CreateComplex( KA_Oadd, A_O.("O1") / A_Oadd, 0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 ]> gap> O2 := CreateComplex( KA_Oadd, A_O.("O2") / A_Oadd, 0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 ]> gap> IsWellDefined( AsSubcategoryCell( T_E, O0 ) ) and > IsWellDefined( AsSubcategoryCell( T_E, O1 ) ) and > IsWellDefined( AsSubcategoryCell( T_E, O2 ) ); true gap> G := ReplacementFunctorIntoHomotopyCategoryOfAdditiveClosureOfAbstractionAlgebroid( seq ); Replacement functor gap> F := ConvolutionFunctorFromHomotopyCategoryOfAdditiveClosureOfAbstractionAlgebroid( seq ); Convolution functor gap> G_O0 := ApplyFunctor( G, O0 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {E1,E2,E3}[m1_2_1:E1-≻E2,m1_2_2:E1-≻E2,m1_2_3:E1-≻E2,m2_3_1:E2-≻E3,m2_3_2:E2-≻E3,m2_3_3:E2-≻E3] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 ]> gap> G_O1 := ApplyFunctor( G, O1 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {E1,E2,E3}[m1_2_1:E1-≻E2,m1_2_2:E1-≻E2,m1_2_3:E1-≻E2,m2_3_1:E2-≻E3,m2_3_2:E2-≻E3,m2_3_3:E2-≻E3] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ -1 .. 0 ]> gap> G_O2 := ApplyFunctor( G, O2 ); <An object in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {E1,E2,E3}[m1_2_1:E1-≻E2,m1_2_2:E1-≻E2,m1_2_3:E1-≻E2,m2_3_1:E2-≻E3,m2_3_2:E2-≻E3,m2_3_3:E2-≻E3] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ -2 .. 0 ]> gap> epsilon := CounitOfConvolutionReplacementAdjunction( seq ); Counit ϵ : F∘G ⟹ Id of the adjunction F ⊣ G gap> epsilon_O0 := ApplyNaturalTransformation( epsilon, O0 ); <A morphism in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ 0 ]> gap> epsilon_O1 := ApplyNaturalTransformation( epsilon, O1 ); <A morphism in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ -1 .. 0 ]> gap> epsilon_O2 := ApplyNaturalTransformation( epsilon, O2 ); <A morphism in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ -2 .. 0 ]> gap> ForAll( [ epsilon_O0, epsilon_O1, epsilon_O2 ], IsIsomorphism ); true gap> i := InverseForMorphisms( DirectSumFunctorial( [ epsilon_O0, epsilon_O1, epsilon_O2 ] ) ); <A morphism in Homotopy category by cochains( AdditiveClosure( Q-algebroid( {O0,O1,O2}[x0:O0-≻O1,x1:O0-≻O1,x2:O0-≻O1,y0:O1-≻O2,y1:O1-≻O2,y2:O1-≻O2] ) defined by 3 objects and 6 generating morphisms ) ) supported on the interval [ -2 .. 0 ]> gap> IsWellDefined( i ) and IsIsomorphism( i ); true
generated by GAPDoc2HTML