diff --git a/PackageInfo.g b/PackageInfo.g index 9ec29d4..99c7f45 100644 --- a/PackageInfo.g +++ b/PackageInfo.g @@ -11,7 +11,7 @@ SetPackageInfo( rec( PackageName := "CatReps", Subtitle := "Representations and cohomology of finite categories", Version := Maximum( [ - "2020.04.07", ## Mohamed's version + "2020.04.08", ## Mohamed's version ## this line prevents merge conflicts "2020.01.01", ## Tibor's version ## this line prevents merge conflicts @@ -111,7 +111,7 @@ Dependencies := rec( [ "SubcategoriesForCAP", ">= 2020.02.02" ], [ "MatricesForHomalg", ">= 2020.02.02" ], [ "Toposes", ">= 2020.02.19" ], - [ "FunctorCategories", ">= 2020.04.07" ], + [ "FunctorCategories", ">= 2020.04.08" ], ], SuggestedOtherPackages := [ ], ExternalConditions := [ ], diff --git a/doc/Doc.autodoc b/doc/Doc.autodoc index 191273c..9490004 100644 --- a/doc/Doc.autodoc +++ b/doc/Doc.autodoc @@ -4,4 +4,8 @@ @Section Global variables @Section Attributes @Section Constructors +@Section Operations @Section Tools +@Section Example + +@InsertChunk CategoryOfRepresentations diff --git a/examples/CategoryOfRepresentations.g b/examples/CategoryOfRepresentations.g index bfce9ed..bd026de 100644 --- a/examples/CategoryOfRepresentations.g +++ b/examples/CategoryOfRepresentations.g @@ -14,6 +14,7 @@ GF3q := PathAlgebra( GF3, qc3c3 ); rel := [GF3q.a^3-GF3q.1, GF3q.c^3-GF3q.2, GF3q.a*GF3q.b-GF3q.b*GF3q.c];; kq := Algebroid( GF3q, rel ); #! Algebroid generated by the right quiver q(2)[a:1->1,b:1->2,c:2->2] +SetIsLinearClosureOfACategory( kq, true ); #! @EndExample #! A representation of the category c3c3 is another way to encode @@ -25,49 +26,14 @@ kq := Algebroid( GF3q, rel ); #! The above relation of the quiver states that the value of (b) is #! a module homomorphism from the first to the second $C_3$-module. -#! Now we add the bialgebroid structure: - -#! @Example -counit := rec( a := 1, b := 1, c := 1 ); -#! rec( a := 1, b := 1, c := 1 ) -kq2 := kq^2; -#! Algebroid generated by the right quiver qxq(1x1,1x2,2x1,2x2)\ -#! [1xa:1x1->1x1,1xb:1x1->1x2,1xc:1x2->1x2,2xa:2x1->2x1,2xb:2x1->2x2,2xc:2x2->2x2,\ -#! ax1:1x1->1x1,ax2:1x2->1x2,bx1:1x1->2x1,bx2:1x2->2x2,cx1:2x1->2x1,cx2:2x2->2x2] -PreCompose( kq2.ax1, kq2.1xa ) = PreCompose( kq2.1xa, kq2.ax1 ); -#! true -PreCompose( kq2.bx1, kq2.2xb ) = PreCompose( kq2.1xb, kq2.bx2 ); -#! true -PreCompose( kq2.cx2, kq2.2xc ) = PreCompose( kq2.2xc, kq2.cx2 ); -#! true -comult := rec( a := PreCompose( kq2.ax1, kq2.1xa ), - b := PreCompose( kq2.1xb, kq2.bx2 ), - c := PreCompose( kq2.cx2, kq2.2xc ) ); -#! rec( a := (1x1)-[{ Z(3)^0*(1xa*ax1) }]->(1x1), -#! b := (1x1)-[{ Z(3)^0*(1xb*bx2) }]->(2x2), -#! c := (2x2)-[{ Z(3)^0*(2xc*cx2) }]->(2x2) ) -AddBialgebroidStructure( kq, counit, comult ); -#! Bialgebroid generated by the right quiver q(2)[a:1->1,b:1->2,c:2->2] -counit := Counit( kq ); -#! Functor from finitely presented Bialgebroid generated by -#! the right quiver q(2)[a:1->1,b:1->2,c:2->2] -> -#! Algebra generated by the right quiver *(1)[] -comult := Comultiplication( kq ); -#! Functor from finitely presented Bialgebroid generated by -#! the right quiver q(2)[a:1->1,b:1->2,c:2->2] -> -#! Algebroid generated by the right quiver qxq(1x1,1x2,2x1,2x2) -#! [1xa:1x1->1x1,1xb:1x1->1x2,1xc:1x2->1x2,2xa:2x1->2x1,2xb:2x1->2x2,2xc:2x2->2x2,\ -#! ax1:1x1->1x1,ax2:1x2->1x2,bx1:1x1->2x1,bx2:1x2->2x2,cx1:2x1->2x1,cx2:2x2->2x2] -#! @EndExample - #! @Example kmat := MatrixCategory( GF3 ); #! Category of matrices over GF(3) -CatReps := CategoryOfRepresentations( kq, kmat ); -#! The category of functors: Bialgebroid generated by the right quiver +CatReps := Hom( kq, kmat ); +#! The category of functors: Algebroid generated by the right quiver #! q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices over GF(3) InfoOfInstalledOperationsOfCategory( CatReps ); -#! 109 primitive operations were used to derive 237 operations for this category which +#! 108 primitive operations were used to derive 236 operations for this category which #! * IsLinearCategoryOverCommutativeRing #! * IsSymmetricMonoidalCategory #! * IsAbelianCategory @@ -76,7 +42,7 @@ CommutativeRingOfLinearCategory( CatReps ); zero := ZeroObject( CatReps ); #! <(1)->0, (2)->0; (a)->0x0, (b)->0x0, (c)->0x0> Display( zero ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -106,7 +72,7 @@ Display( zero ); const := TensorUnit( CatReps ); #! <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1> Display( const ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -139,7 +105,7 @@ f := [[1,1,0,0],[0,1,1,0],[0,0,1,0],[0,0,0,1]];; nine := AsObjectInHomCategory( kq, [ 5, 4 ], [ d, e, f ] ); #! <(1)->5, (2)->4; (a)->5x5, (b)->5x4, (c)->4x4> Display( nine ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -208,7 +174,7 @@ fortyone(kq.b) = TensorProductOnMorphisms( nine(kq.b), nine(kq.b) ); fortyone(kq.c) = TensorProductOnMorphisms( nine(kq.c), nine(kq.c) ); #! true Display( fortyone ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -310,7 +276,7 @@ IsIsomorphism( iso ); iso; #! <(1)->25x25, (2)->16x16> Display( Source( iso ) ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -401,7 +367,7 @@ Display( Source( iso ) ); #! #! A morphism in Category of matrices over GF(3) Display( iso ); -#! A morphism in The category of functors: Bialgebroid generated by the +#! A morphism in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -462,7 +428,7 @@ TensorProductOnMorphisms( eta, eta ); six := Source( eta ); #! <(1)->3, (2)->3; (a)->3x3, (b)->3x3, (c)->3x3> Display( six ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -498,7 +464,7 @@ Display( six ); emb := EmbeddingOfSumOfImagesOfAllMorphisms( const, six ); #! <(1)->1x3, (2)->0x3> Display( emb ); -#! A morphism in The category of functors: Bialgebroid generated by the +#! A morphism in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -506,7 +472,7 @@ Display( emb ); #! Image of <(1)>: #! . . 1 #! -#! A split monomorphism in Category of matrices over GF(3) +#! A morphism in Category of matrices over GF(3) #! #! #! Image of <(2)>: @@ -516,7 +482,7 @@ Display( emb ); s1 := Source( emb ); #! <(1)->1, (2)->0; (a)->1x1, (b)->1x0, (c)->0x0> Display( s1 ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -546,7 +512,7 @@ Display( s1 ); proj1 := YonedaProjective( CatReps, kq.1 ); #! <(1)->3, (2)->3; (a)->3x3, (b)->3x3, (c)->3x3> Display( proj1 ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -588,7 +554,7 @@ IsEpimorphism( EmbeddingOfSumOfImagesOfAllMorphisms( proj1, six ) ); five := CokernelObject( emb ); #! <(1)->2, (2)->3; (a)->2x2, (b)->2x3, (c)->3x3> Display( five ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! @@ -632,7 +598,7 @@ SumOfImagesOfAllMorphisms( six, const ); proj2 := YonedaProjective( CatReps, kq.2 ); #! <(1)->0, (2)->3; (a)->0x0, (b)->0x3, (c)->3x3> Display( proj2 ); -#! An object in The category of functors: Bialgebroid generated by the +#! An object in The category of functors: Algebroid generated by the #! right quiver q(2)[a:1->1,b:1->2,c:2->2] -> Category of matrices #! over GF(3) defined by the following data: #! diff --git a/gap/CatRepsWithCAP.gd b/gap/CatRepsWithCAP.gd index ae882c2..a7613a6 100644 --- a/gap/CatRepsWithCAP.gd +++ b/gap/CatRepsWithCAP.gd @@ -83,15 +83,6 @@ DeclareOperation( "ConcreteCategoryForCAP", [ IsList ] ); #! @InsertChunk ConcreteCategoryForCAP -#! @Description -#! Construct the category of representations of the algebroid kq -#! with values in the Abelian category A. -#! @Arguments kq, A -#! @Returns a &CAP; category -DeclareOperation( "CategoryOfRepresentations", - [ IsAlgebroid, IsCapCategory ] ); -#! @InsertChunk CategoryOfRepresentations - #! @Description #! Concstruct the embedding of a subrepresentation $S$ of F #! by a list eta of morphisms, where the image embeddings thereof are diff --git a/gap/CatRepsWithCAP.gi b/gap/CatRepsWithCAP.gi index 80c4ed3..1315a2b 100644 --- a/gap/CatRepsWithCAP.gi +++ b/gap/CatRepsWithCAP.gi @@ -56,50 +56,6 @@ InstallMethod( ConcreteCategoryForCAP, end ); -## -InstallMethod( CategoryOfRepresentations, - "for an algebroid and a CAP category", - [ IsAlgebroid, IsCapCategory ], - - function( kq, A ) - local CatReps; - - CatReps := Hom( kq, A : - doctrines := [ [ "IsSymmetricMonoidalCategory", true ] ], - FinalizeCategory := false ); - - AddTensorUnit( CatReps, - function( ) - local objects, morphisms; - - objects := List( [ 1 .. Length( SetOfObjects( kq ) ) ], i -> TensorUnit( A ) ); - morphisms := List( [ 1 .. Length( SetOfGeneratingMorphisms( kq ) ) ], i -> IdentityMorphism( TensorUnit( A ) ) ); - - return AsObjectInHomCategory( kq, objects, morphisms ); - - end ); - - AddTensorProductOnObjects( CatReps, - function( F, G ) - local objects, morphisms; - - objects := ListN( ValuesOnAllObjects( F ), ValuesOnAllObjects( G ), TensorProductOnObjects ); - morphisms := ListN( ValuesOnAllGeneratingMorphisms( F ), ValuesOnAllGeneratingMorphisms( G ), TensorProductOnMorphisms ); - - return AsObjectInHomCategory( kq, objects, morphisms ); - - end ); - - if ValueOption( "FinalizeCategory" ) = false then - return CatReps; - fi; - - Finalize( CatReps ); - - return CatReps; - -end ); - ## InstallMethod( RecordOfCategory, "for an algebroid",