Goto Chapter: Top 1 2 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

2 Examples and Tests
 2.1 Homotopy Category of Freyd Categories
 2.2 Homotopy Category of Left-Presentations Categories
 2.3 Homotopy Category of Presheaves categories (Quiver Representations)
 2.4 Strong Exceptional Sequence in the Homotopy Category of the Additive Closure of an Algebroid

2 Examples and Tests

2.1 Homotopy Category of Freyd Categories

gap> LoadPackage( "FreydCategoriesForCAP", 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_rows := CategoryOfRows( QQ_xy );
Rows( Q[x,y] )
gap> QQ_xy_mod := FreydCategory( QQ_xy_rows );
Freyd( Rows( Q[x,y] ) )
gap> K_QQ_xy_mod := HomotopyCategoryByCochains( QQ_xy_mod );
Homotopy category by cochains( Freyd( Rows( 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 := ObjectConstructor( QQ_xy_mod, m / QQ_xy_rows );
<An object in Freyd( Rows( Q[x,y] ) )>
gap> Display( M );

--------------------------------
Relation morphism:
--------------------------------

Source: 
A row module over Q[x,y] of rank 10

Matrix: 
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    

Range: 
A row module over Q[x,y] of rank 7

A morphism in Rows( Q[x,y] )


--------------------------------
General description:
--------------------------------

An object in Freyd( Rows( Q[x,y] ) )
gap> IsZero( M );
false
gap> IsProjective( M );
false
gap> N := ObjectConstructor( QQ_xy_mod, n / QQ_xy_rows );
<An object in Freyd( Rows( Q[x,y] ) )>
gap> Display( N );

--------------------------------
Relation morphism:
--------------------------------

Source: 
A row module over Q[x,y] of rank 3

Matrix: 
0,0,      25*y+9, 
0,0,      725*x+7,
0,10*x+17,0       

Range: 
A row module over Q[x,y] of rank 3

A morphism in Rows( Q[x,y] )


--------------------------------
General description:
--------------------------------

An object in Freyd( Rows( 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 := MorphismConstructor( QQ_xy_mod, M, a / QQ_xy_rows, N );
<A morphism in Freyd( Rows( Q[x,y] ) )>
gap> Display( alpha );

--------------------------------
Source:
--------------------------------

Source: 
A row module over Q[x,y] of rank 10

Matrix: 
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    

Range: 
A row module over Q[x,y] of rank 7

A morphism in Rows( Q[x,y] )


--------------------------------
Morphism datum:
--------------------------------

Source: 
A row module over Q[x,y] of rank 7

Matrix: 
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           

Range: 
A row module over Q[x,y] of rank 3

A morphism in Rows( Q[x,y] )


--------------------------------
Range:
--------------------------------

Source: 
A row module over Q[x,y] of rank 3

Matrix: 
0,0,      25*y+9, 
0,0,      725*x+7,
0,10*x+17,0       

Range: 
A row module over Q[x,y] of rank 3

A morphism in Rows( Q[x,y] )


--------------------------------
General description:
--------------------------------

A morphism in Freyd( Rows( Q[x,y] ) )


gap> IsIsomorphism( alpha );
true
gap> M := CreateComplex( K_QQ_xy_mod, [ MorphismIntoZeroObject( M ) ], 0 );
<An object in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ 0 .. 1 ]>
gap> ObjectsSupport( M );
[ 0 ]
gap> ObjectAt( M, 0 ); # or M[0]
<An object in Freyd( Rows( Q[x,y] ) )>
gap> DifferentialAt( M, 0 ); # or M^0
<A zero, split epimorphism in Freyd( Rows( Q[x,y] ) )>
gap> N := CreateComplex( K_QQ_xy_mod, [ MorphismIntoZeroObject( N ) ], 0 );
<An object in Homotopy category by cochains( Freyd( Rows( 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( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ 0 .. 1 ]>
gap> p_M := ProjectiveResolution( M, true );
<An object in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -2 .. 1 ]>
gap> q_M := QuasiIsomorphismFromProjectiveResolution( M, true );
<A morphism in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -2 .. 1 ]>
gap> p_N := ProjectiveResolution( N, true );
<An object in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -2 .. 1 ]>
gap> q_N := QuasiIsomorphismFromProjectiveResolution( N, true );
<A morphism in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -2 .. 1 ]>
gap> p_alpha := MorphismBetweenProjectiveResolutions( alpha, true );
<A morphism in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -2 .. 1 ]>
gap> IsIsomorphism( p_alpha );
true
gap> MorphismAt( p_alpha, 0 );
<A morphism in Freyd( Rows( Q[x,y] ) )>
gap> PreCompose( p_alpha, q_N ) = PreCompose(q_M, alpha );
true
gap> L := LocalizationFunctorByProjectiveObjects( K_QQ_xy_mod );
Localization functor via projective objects
gap> Display( L );
Localization functor via projective objects:

Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) )
  |
  V
Homotopy category by cochains( FullSubcategoryOfProjectiveObjects( Freyd( Rows( Q[x,y] ) ) ) )
gap> L_M := ApplyFunctor( L, M );
<An object in Homotopy category by cochains( FullSubcategoryOfProjectiveObjects( Freyd( Rows( Q[x,y] ) ) ) ) supported on the interval [ -2 .. 1 ]>
gap> IsIsomorphism( ApplyFunctor( L, alpha ) );
true
gap> cone_q_M := StandardConeObject( q_M );
<An object in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -3 .. 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( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -3 .. 1 ]>
gap> IsWellDefined( iota_q_M );
true
gap> pi_q_M := MorphismFromStandardConeObject( q_M );
<A morphism in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -3 .. 1 ]>
gap> IsZeroForMorphisms( PreCompose( iota_q_M, pi_q_M ) );
true
gap> nu := MorphismBetweenStandardConeObjects(q_M, p_alpha, alpha, q_N);
<A morphism in Homotopy category by cochains( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -3 .. 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( Freyd( Rows( Q[x,y] ) ) ) supported on the interval [ -4 .. -1 ]>

2.2 Homotopy Category of Left-Presentations Categories

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> IsZeroForObjects( 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 ]>

2.3 Homotopy Category of Presheaves categories (Quiver Representations)

gap> LoadPackage( "FunctorCategories", false );
true
gap> LoadPackage( "HomotopyCategories", false );
true
gap> q_O := FinQuiver( "q_O(A,B,C)[x:A->B,y:A->B,z:B->C,w:B->C]" );
FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" )
gap> P_O := PathCategory( q_O );
PathCategory( FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" ) )
gap> rho_O := [ [ P_O.xz, P_O.yw ] ];
[ [ x⋅z:(A) -≻ (C), y⋅w:(A) -≻ (C) ] ]
gap> quotient_P_O := QuotientCategory( P_O, rho_O );
PathCategory( FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" ) ) / [ x⋅z = y⋅w ]
gap> QQ := HomalgFieldOfRationals( );
Q
gap> k := QQ;
Q
gap> k_quotient_P_O := k[quotient_P_O];
Q-LinearClosure( PathCategory( FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" ) ) / [ x⋅z = y⋅w ] )
gap> A_O := AlgebroidFromDataTables( k_quotient_P_O );
Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms
gap> Dimension( A_O );
10
gap> IsAdmissibleAlgebroid( A_O );
true
gap> phi := 2 * A_O.x + 3 * A_O.y;
<2*x + 3*y:(A) -≻ (B)>
gap> PSh := PreSheaves( A_O );
PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) )
gap> Display( PSh );
A CAP category with name PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ):

59 primitive operations were used to derive 345 operations for this category which algorithmically
* IsCategoryWithDecidableColifts
* IsCategoryWithDecidableLifts
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
* IsAbelianCategoryWithEnoughInjectives
* IsAbelianCategoryWithEnoughProjectives
gap> indec_projs := IndecomposableProjectiveObjects( PSh );
[ <(A)->1, (B)->0, (C)->0; (x)->0x1, (y)->0x1, (z)->0x0, (w)->0x0>, <(A)->2, (B)->1, (C)->0; (x)->1x2, (y)->1x2, (z)->0x1, (w)->0x1>, 
  <(A)->3, (B)->2, (C)->1; (x)->2x3, (y)->2x3, (z)->1x2, (w)->1x2> ]
gap> indec_injs := IndecomposableInjectiveObjects( PSh );
[ <(A)->1, (B)->2, (C)->3; (x)->2x1, (y)->2x1, (z)->3x2, (w)->3x2>, <(A)->0, (B)->1, (C)->2; (x)->1x0, (y)->1x0, (z)->2x1, (w)->2x1>, 
  <(A)->0, (B)->0, (C)->1; (x)->0x0, (y)->0x0, (z)->1x0, (w)->1x0> ]
gap> C_PSh := ComplexesCategoryByCochains( PSh );
Complexes category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) )
gap> K_PSh := HomotopyCategoryByCochains( PSh );
Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) )
gap> Display( K_PSh );
A CAP category with name Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ):

50 primitive operations were used to derive 209 operations for this category which algorithmically
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
* IsAdditiveCategory
gap> L_proj := LocalizationFunctorByProjectiveObjects( K_PSh );
Localization functor via projective objects
gap> Display( L_proj );
Localization functor via projective objects:

Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) )
  |
  V
Homotopy category by cochains( FullSubcategoryOfProjectiveObjects( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ) )
gap> f := BasisOfExternalHom( indec_projs[1], indec_projs[2] )[1];
<(A)->1x2, (B)->0x1, (C)->0x0>
gap> IsEpimorphism( f );
false
gap> R := CokernelObject( f );
<(A)->1, (B)->1, (C)->0; (x)->1x1, (y)->1x1, (z)->0x1, (w)->0x1>
gap> R := CreateComplex( K_PSh, [ UniversalMorphismIntoZeroObject( R ) ], 0 );
<An object in Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ) supported on the interval [ 0 .. 1 ]>
gap> iota_R := QuasiIsomorphismIntoInjectiveResolution( R, true );
<A morphism in Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ) supported on the interval [ 0 .. 1 ]>
gap> IsWellDefined( iota_R );
true
gap> IsQuasiIsomorphism( iota_R );
true
gap> CohomologySupport( Source( iota_R ) );
[ 0 ]
gap> CohomologySupport( Target( iota_R ) );
[ 0 ]
gap> L_proj_iota_R := ApplyFunctor( L_proj, iota_R );
<A morphism in Homotopy category by cochains( FullSubcategoryOfProjectiveObjects( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ) ) supported on the interval [ -1 .. 1 ]>
gap> IsIsomorphism( L_proj_iota_R );
true
gap> inv_L_proj_iota_R := InverseForMorphisms( L_proj_iota_R );
<A morphism in Homotopy category by cochains( FullSubcategoryOfProjectiveObjects( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ) ) supported on the interval [ -1 .. 1 ]>
gap> u := PreCompose( L_proj_iota_R, inv_L_proj_iota_R );;
gap> id := IdentityMorphism( Source( L_proj_iota_R ) );;
gap> IsZeroForMorphisms( u - id );
true
gap> w := WitnessForBeingHomotopicToZeroMorphism( u - id ); # the homotopy maps
<ZFunction>
gap> w[0];
A morphism in full subcategory given by: <(A)->2x1, (B)->1x0, (C)->0x0>
gap> LoadPackage( "FunctorCategories", false );
true
gap> LoadPackage( "HomotopyCategories", false );
true
gap> q_O := FinQuiver( "q_O(A,B,C)[x:A->B,y:A->B,z:B->C,w:B->C]" );
FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" )
gap> P_O := PathCategory( q_O );
PathCategory( FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" ) )
gap> rho_O := [ [ P_O.xz, P_O.yw ] ];
[ [ x⋅z:(A) -≻ (C), y⋅w:(A) -≻ (C) ] ]
gap> quotient_P_O := QuotientCategory( P_O, rho_O );
PathCategory( FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" ) ) / [ x⋅z = y⋅w ]
gap> QQ := HomalgFieldOfRationals( );
Q
gap> k := QQ;
Q
gap> k_quotient_P_O := k[quotient_P_O];
Q-LinearClosure( PathCategory( FinQuiver( "q_O(A,B,C)[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C]" ) ) / [ x⋅z = y⋅w ] )
gap> A_O := AlgebroidFromDataTables( k_quotient_P_O );
Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms
gap> Dimension( A_O );
10
gap> IsAdmissibleAlgebroid( A_O );
true
gap> PSh := PreSheaves( A_O );
PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) )
gap> Y1 := YonedaEmbeddingOfSourceCategory( PSh );
Yoneda embedding functor
gap> Display( Y1 );
Yoneda embedding functor:

Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms
  |
  V
PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) )
gap> ApplyFunctor( Y1, A_O.x );
<(A)->1x2, (B)->0x1, (C)->0x0>
gap> Y2 := ExtendFunctorToAdditiveClosureOfSource( Y1 );
Extension of Yoneda embedding functor to a functor from the additive closure of the source
gap> Display( Y2 );
Extension of Yoneda embedding functor to a functor from the additive closure of the source:

AdditiveClosure( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms )
  |
  V
PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) )
gap> add_A_O := SourceOfFunctor( Y2 );
AdditiveClosure( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms )
gap> ApplyFunctor( Y2, add_A_O.x );
<(A)->1x2, (B)->0x1, (C)->0x0>
gap> Y3 := ExtendFunctorToFreydCategory( Y2 ); # Y3 is an equivalence of categories
Extension to FreydCategory( Source( Extension of Yoneda embedding functor to a functor from the additive closure of the source ) )
gap> Display( Y3 );
Extension to FreydCategory( Source( Extension of Yoneda embedding functor to a functor from the additive closure of the source ) ):

Freyd( AdditiveClosure( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms ) )
  |
  V
PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) )
gap> Display( SourceOfFunctor( Y3 ) );
A CAP category with name Freyd( AdditiveClosure( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms ) ):

48 primitive operations were used to derive 342 operations for this category which algorithmically
* IsCategoryWithDecidableColifts
* IsCategoryWithDecidableLifts
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
* IsAbelianCategoryWithEnoughProjectives
gap> Display( RangeOfFunctor( Y3 ) );
A CAP category with name PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ):

59 primitive operations were used to derive 345 operations for this category which algorithmically
* IsCategoryWithDecidableColifts
* IsCategoryWithDecidableLifts
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms
* IsAbelianCategoryWithEnoughInjectives
* IsAbelianCategoryWithEnoughProjectives
gap> Y4 := ExtendFunctorToHomotopyCategoriesByCochains( Y3 );
Extension of ( Extension to FreydCategory( Source( Extension of Yoneda embedding functor to a functor from the additive closure of the source ) ) ) to homotopy categories by cochains
gap> Display( Y4 );
Extension of ( Extension to FreydCategory( Source( Extension of Yoneda embedding functor to a functor from the additive closure of the source ) ) ) to homotopy categories by cochains:

Homotopy category by cochains( Freyd( AdditiveClosure( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms ) ) )
  |
  V
Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) )
gap> repeat f := RandomMorphism( SourceOfFunctor( Y4 ), 3 );; until not IsZeroForMorphisms( f );
gap> Y4_f := ApplyFunctor( Y4, f );
<A morphism in Homotopy category by cochains( PreSheaves( Q-algebroid( {A,B,C}[x:A-≻B,y:A-≻B,z:B-≻C,w:B-≻C] ) defined by 3 objects and 4 generating morphisms, Rows( Q ) ) ) supported on the interval [ -1 .. 2 ]>
gap> r1 := RankOfObject( HomomorphismStructureOnObjects( Source( f ), Target( f ) ) );;
gap> r2 := RankOfObject( HomomorphismStructureOnObjects( Source( Y4_f ), Target( Y4_f ) ) );;
gap> r1 = r2;
true

2.4 Strong Exceptional Sequence in the Homotopy Category of the Additive Closure of an Algebroid

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
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 Ind

generated by GAPDoc2HTML