Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

14 Quotient categories of algebroids from data tables using presheaves categories
 14.1 Attributes

14 Quotient categories of algebroids from data tables using presheaves categories

Let A be an algebroid over a commutative ring k, given by finite data tables, and let I be the two-sided ideal generated by morphisms \alpha_i:t_i\to u_i, where t_i and u_i are objects of A. The aim of this construction is to realize the quotient algebroid A/I as a quotient of a presheaf associated with A. More precisely, the ideal I gives rise to a subpresheaf F_I\subseteq F_A, and the Hom-bifunctor of A/I is realized as the quotient presheaf F_A/F_I.

More precisely, regard the Hom-bifunctor of A as the presheaf

F_A \in \mathrm{PSh}(A^{\mathrm{op}}\otimes_k A)

determined by its values on the objects and generating morphisms of A^{\mathrm{op}}\otimes_k A: For two objects u and t of A, we have

F_A(u^{\mathrm{op}}\otimes t)=\operatorname{Hom}_A(t,u).

For objects s,t,u,v of A and morphisms f:s\to t and g:u\to v, the elementary tensor g^{\mathrm{op}}\otimes f:v^{\mathrm{op}}\otimes s\to u^{\mathrm{op}}\otimes t is mapped contravariantly to

\operatorname{Hom}_A(t,u)\longrightarrow\operatorname{Hom}_A(s,v), \qquad h\longmapsto g\circ h\circ f.

The left and right actions commute by associativity, as displayed in the following diagram. Thus F_A is A, through its Hom-modules and composition maps, regarded as a module over the enveloping algebroid A^{\mathrm{op}}\otimes_k A.

For an object x of A^{\mathrm{op}}\otimes_k A, let P_x denote its image under the Yoneda embedding. Such representable presheaves are projective objects. By the Yoneda lemma, every relation \alpha_i determines a morphism

\lambda_{\alpha_i}:P_{u_i^{\mathrm{op}}\otimes t_i}\longrightarrow F_A.

The family of morphisms \lambda_{\alpha_i} induces a morphism from the direct sum of their source objects,

\tau:\bigoplus_i P_{u_i^{\mathrm{op}}\otimes t_i}\longrightarrow F_A.

Define the ideal presheaf F_I and the quotient presheaf F_{A/I} by

F_I:=\operatorname{im}(\tau),\qquad F_{A/I}:=F_A/F_I=\operatorname{coker}(\tau).

For x=v^{\mathrm{op}}\otimes s, the quotient sequence and its evaluation at x fit into the following commutative diagram with exact rows. At v^{\mathrm{op}}\otimes s, the value of F_I is precisely the submodule I(s,v)\subseteq\operatorname{Hom}_A(s,v) spanned by all compatible two-sided composites of the \alpha_i. Hence

F_{A/I}(v^{\mathrm{op}}\otimes s) =\operatorname{Hom}_A(s,v)/I(s,v) =\operatorname{Hom}_{A/I}(s,v).

Thus F_{A/I} is the Hom-bifunctor of the quotient algebroid, regarded as a presheaf on A^{\mathrm{op}}\otimes_k A via the quotient functor A\to A/I.

This description is the mathematical basis of the method QuotientCategory for algebroids defined by data tables in the package FpLinearCategories. Indeed, for a morphism m:s\to v in A, set x:=v^{\mathrm{op}}\otimes s and let \pi:F_A\to F_{A/I} be the cokernel projection. Membership in the ideal is characterized by

m\in I(s,v) \quad\Longleftrightarrow\quad \lambda_m(x)\text{ factors through }\tau(x) \quad\Longleftrightarrow\quad \pi(x)\circ\lambda_m(x)=0.

When these equivalent conditions hold, the factorization is represented by the dashed lift in the following commutative diagram. Since composition in A is encoded by finite matrices, this criterion is decided by linear algebra. Over a field, the quotient Hom-modules are computed as cokernels. Over a more general computable ring, membership is decided by a lift through \tau, and quotient Hom-modules are represented in the corresponding Freyd category. Thus taking a further quotient of an algebroid already given by data tables is computed directly by linear algebra, without computing a noncommutative Groebner basis or applying a path-reduction algorithm. Constructing those data tables from an earlier path presentation may, of course, have required a Groebner basis.

14.1 Attributes

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

Returns: a CAP category object

The argument is an algebroid A over a commutative ring k, defined by data tables. The output is the presheaf F_A defined in the introduction: the Hom-bifunctor of A, regarded as a module over its enveloping algebroid A^{\mathrm{op}}\otimes_k A.

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, where t and u are objects of A. The output is the morphism of presheaves

\lambda_\alpha:P_{u^{\mathrm{op}}\otimes t}\longrightarrow F_A

corresponding to \alpha under the Yoneda isomorphism

\operatorname{Hom}_A(t,u)=F_A(u^{\mathrm{op}}\otimes t) \cong\operatorname{Hom}_{\mathrm{PSh}(A^{\mathrm{op}}\otimes_k A)} (P_{u^{\mathrm{op}}\otimes t},F_A).

Here P_{u^{\mathrm{op}}\otimes t} is the representable presheaf given by the Yoneda embedding. Pointwise, the image of \lambda_\alpha at v^{\mathrm{op}}\otimes s consists of the linear combinations of all compatible composites g\circ\alpha\circ f:s\to v, where s,v are objects and f,g are morphisms in A. This is exactly the (s,v)-component of the two-sided ideal generated by \alpha.

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*id(3):(3) → (3)>, <1*e:(3) → (3)>, <1*e^2:(3) → (3)> ]
gap> data_tables := DataTablesOfLinearCategory( 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
gap> add_qB := AdditiveClosure( qB );
AdditiveClosure( 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> 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> # @drop_example_in_Julia
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
gap> IsAdmissibleAlgebroid( B );
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)*y⋅x + 1*x⋅y, 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
gap> IsAdmissibleAlgebroid( B );
true
gap> A := kC / [ kC.xy - kC.yx, kC.x^3 - kC.x, kC.y^3 ];
Q-LinearClosure( PathCategory( FinQuiver( "q(o)[x:o→o,y:o→o]" ) ) )
/ [ (-1)*y⋅x + 1*x⋅y, 1*x^3 + (-1)*x, 1*y^3 ]
gap> B := AlgebroidFromDataTables( A );
Q-algebroid( {o}[x:o→o,y:o→o] ) defined by 1 object and 2 generating morphisms
gap> IsAdmissibleAlgebroid( B );
false
gap> # @drop_example_in_Julia
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Ind

generated by GAPDoc2HTML