Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Ind

14 Quotient categories of algebroids from data tables using presheaves categories

14.1 Attributes

14.1-1 AlgebroidAsObjectInPreSheavesCategory
 ‣ AlgebroidAsObjectInPreSheavesCategory( A ) ( attribute )

Returns: a CAP category morphism

The argument is an algebroid $$A$$ over a commutative ring $$k$$. The output is the presheaf object $$F_{A}\in \mathrm{PSh}(A^{\mathrm{op}}\otimes A)$$ which maps an object $$u^{\mathrm{op}}\otimes t \in A^{\mathrm{op}}\otimes A$$ to $$\mathrm{Hom}_B(t,u) \in k\mbox{-}\mathrm{rows}$$ and maps a morphism $$g^{\mathrm{op}}\otimes f : v^{\mathrm{op}}\otimes s \to u^{\mathrm{op}}\otimes t \in A^{\mathrm{op}}\otimes A$$ to $$f\bullet(-)\bullet g =\mathrm{Hom}_B(f,g): \mathrm{Hom}_B(t,u) \to \mathrm{Hom}_B(s,v) \in k\mbox{-}\mathrm{rows}$$.

14.1-2 AssociatedMorphismIntoAlgebroidAsObjectInPreSheavesCategory
 ‣ AssociatedMorphismIntoAlgebroidAsObjectInPreSheavesCategory( alpha ) ( attribute )

Returns: a CAP category morphism

The argument is a morphism $$\alpha: t \to u$$ in an algebroid $$A$$ over a commutative ring $$k$$. The output is the morphism $$\lambda_{\alpha}:P_{u^{\mathrm{op}}\otimes t} \to F_{A}$$ where $$P_{u^{\mathrm{op}}\otimes t}$$ is the image of $$u^{\mathrm{op}}\otimes t$$ under the Yoneda embdding $$A^{\mathrm{op}}\otimes A \hookrightarrow \mathrm{PSh}(A^{\mathrm{op}}\otimes A)$$; and $$\lambda_{\alpha}$$ the image of $$\alpha$$ under the natural isomorphism $$\mathrm{Hom}_{A}(t,u) = F_{A}(u^{\mathrm{op}}\otimes t) \simeq \mathrm{Hom}_{\mathrm{PSh}(A^{\mathrm{op}}\otimes A)}(P_{u^{\mathrm{op}}\otimes t},F_{A})$$.

gap> LoadPackage( "FunctorCategories", false );
true
gap> q := FinQuiver( "q(0,1,2,3)[a:0->1,b:1->3,c:0->2,d:2->3,e:3->3]" );
FinQuiver( "q(0,1,2,3)[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3]" )
gap> k := HomalgFieldOfRationals();
Q
gap> C := PathCategory( q );
PathCategory( FinQuiver( "q(0,1,2,3)[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3]" ) )
gap> kC := k[C];
Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2,3)[a:0-≻1,b:1-≻3,c:0-≻2,
d:2-≻3,e:3-≻3]" ) ) )
gap> quo_kC := kC / [ kC.e^3 ];
Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2,3)[a:0-≻1,b:1-≻3,c:0-≻2,
d:2-≻3,e:3-≻3]" ) ) ) / [ 1*e^3 ]
gap> A := AlgebroidFromDataTables( quo_kC );
Q-algebroid( {0,1,2,3}[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3] ) defined by
4 objects and 5 generating morphisms
gap> e := AssociatedMorphismIntoAlgebroidAsObjectInPreSheavesCategory( A.("e") );;
gap> IsWellDefined( e );
true
gap> qA := QuotientCategory( A, [ A.ab - A.cd, 2*A.be ] );
QuotientCategory( Q-algebroid( {0,1,2,3}[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3] )
defined by 4 objects and 5 generating morphisms, 2-sided ideal generated
by 2 morphisms )
gap> qA.0;
<(0)>
gap> RangeCategoryOfHomomorphismStructure( qA );
Rows( Q )
gap> IsZero( qA.cde );
true
gap> f := RandomMorphism( qA, 20 );;
gap> 1/2 * HomStructure( Source( f ), Target( f ), 2 * HomStructure( f ) ) = f;
true
gap> qA := QuotientCategory( A, [ A.id_0, A.id_1, A.id_2 ] );
QuotientCategory( Q-algebroid( {0,1,2,3}[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3] )
defined by 4 objects and 5 generating morphisms, 2-sided ideal generated
by 3 morphisms )
gap> ForAll( [ qA.0, qA.1, qA.2 ], IsZeroForObjects );
true
gap> IsZero( qA.3 );
false
gap> D := AlgebroidFromDataTables( qA );
Q-algebroid( {3}[e:3-≻3] ) defined by 1 object and 1 generating morphism
gap> BasisOfExternalHom( D.3, D.3 );
[ <1*e^2:(3) -≻ (3)>, <1*e:(3) -≻ (3)>, <1*id(3):(3) -≻ (3)> ]
gap> data_tables := DataTablesOfCategory( quo_kC );;
gap> data_tables_Z := ShallowCopy( data_tables );;
gap> data_tables_Z[1] := HomalgRingOfIntegers();;
gap> B := AlgebroidFromDataTables( data_tables_Z );
Z-algebroid( {0,1,2,3}[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3] ) defined by
4 objects and 5 generating morphisms
gap> RangeCategoryOfHomomorphismStructure( B );
Rows( Z )
gap> qB := QuotientCategory( B, [ B.ab - B.cd, 2*B.be ] );
QuotientCategory( Z-algebroid( {0,1,2,3}[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3] )
defined by 4 objects and 5 generating morphisms, 2-sided ideal generated by
2 morphisms )
gap> RangeCategoryOfHomomorphismStructure( qB );
Freyd( Rows( Z ) )
gap> IsZero( qB.cde );
false
gap> IsZero( 2*qB.cde );
true
c:0-≻2,d:2-≻3,e:3-≻3] ) defined by 4 objects and 5 generating morphisms,
2-sided ideal generated by 2 morphisms ) )
gap> T := RandomObject( add_qB, [[10],[1]] );;
gap> u := RandomMorphism( T, T, 5 );;
gap> v := RandomMorphism( T, T, 5 );;
gap> w := RandomMorphism( T, T, 5 );;
gap> HomStructure( PreCompose( [ u, v, w ] ) )
>       = PreCompose( HomStructure( v ), HomStructure( u, w ) );
true
gap> HomStructure( T, T, 2 * HomStructure( u ) ) = 2 * u;
true

gap> LoadPackage( "FunctorCategories", false );
true
gap> q := FinQuiver( "q(0,1,2)[x:0->1,y:1->2,z:0->2]" );
FinQuiver( "q(0,1,2)[x:0-≻1,y:1-≻2,z:0-≻2]" )
gap> C := PathCategory( q );
PathCategory( FinQuiver( "q(0,1,2)[x:0-≻1,y:1-≻2,z:0-≻2]" ) )
gap> k := HomalgFieldOfRationals( );
Q
gap> kC := k[C];
Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2)[x:0-≻1,
y:1-≻2,z:0-≻2]" ) ) )
gap> A := kC / [ kC.xy - kC.z ];
Q-LinearClosure( PathCategory( FinQuiver( "q(0,1,2)[x:0-≻1,
y:1-≻2,z:0-≻2]" ) ) ) / [ 1*x⋅y - 1*z ]
gap> B := AlgebroidFromDataTables( A );
Q-algebroid( {0,1,2}[x:0-≻1,y:1-≻2,z:0-≻2] ) defined by 3 objects
and 3 generating morphisms
false
gap> q := FinQuiver( "q(o)[x:o->o,y:o->o]" );
FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" )
gap> C := PathCategory( q );
PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" ) )
gap> kC := k[C];
Q-LinearClosure( PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" ) ) )
gap> A := kC / [ kC.xy - kC.yx, kC.x^3, kC.y^3 ];
Q-LinearClosure( PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" ) ) )
/ [ 1*x⋅y - 1*y⋅x, 1*x^3, 1*y^3 ]
gap> B := AlgebroidFromDataTables( A );
Q-algebroid( {o}[x:o-≻o,y:o-≻o] ) defined by 1 object and 2 generating morphisms