gap> LoadPackage( "CatReps" ); true gap> c3c3 := ConcreteCategoryForCAP( [ [2,3,1], [4,5,6], [,,,5,6,4] ] ); A finite concrete category gap> C3C3 := AsFpCategory( c3c3 ); FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) / relations gap> UnderlyingQuiverAlgebra( C3C3 ); (Q * q) / [ 1*(a*a*a) - 1*(1), 1*(c*c*c) - 1*(2), 1*(b*c) - 1*(a*b) ]
A representation of the category C3C3 is another way to encode a module homomorphism between two modules over the cyclic group C_3 of order 3: The vector space underlying the first module is the given by the value of (1). The action of C_3 on the first module is given by the value of (a). The vector space underlying the second module is the given by the value of (2). The action on the second module is given by the value of (c). 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.
gap> GF3 := HomalgRingOfIntegers( 3 ); GF(3) gap> A := GF3[c3c3]; Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations gap> IsLinearClosureOfACategory( A ); true gap> CatReps := FunctorCategory( A, GF3 ); FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) gap> Display( CatReps ); A CAP category with name FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ): 68 primitive operations were used to derive 360 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsEquippedWithHomomorphismStructure * IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms * IsSymmetricMonoidalCategory * IsAbelianCategoryWithEnoughProjectives gap> CommutativeRingOfLinearCategory( CatReps ); GF(3) gap> zero := ZeroObject( CatReps ); <(1)->0, (2)->0; (a)->0x0, (b)->0x0, (c)->0x0> gap> Display( zero ); Image of <(1)>: A vector space object over GF(3) of dimension 0 Image of <(2)>: A vector space object over GF(3) of dimension 0 Image of (1)-[{ Z(3)^0*(a) }]->(1): (an empty 0 x 0 matrix) A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): (an empty 0 x 0 matrix) A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): (an empty 0 x 0 matrix) A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> unit := TensorUnit( CatReps ); <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1> gap> Display( unit ); Image of <(1)>: A vector space object over GF(3) of dimension 1 Image of <(2)>: A vector space object over GF(3) of dimension 1 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 An identity morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): 1 An identity morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 An identity morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> d := [[1,1,0,0,0],[0,1,1,0,0],[0,0,1,0,0],[0,0,0,1,1],[0,0,0,0,1]];; gap> e := [[0,1,0,0],[0,0,1,0],[0,0,0,0],[0,1,0,1],[0,0,1,0]];; gap> f := [[1,1,0,0],[0,1,1,0],[0,0,1,0],[0,0,0,1]];; gap> nine := AsObjectInFunctorCategory( CatReps, [ 5, 4 ], [ d, e, f ] ); <(1)->5, (2)->4; (a)->5x5, (b)->5x4, (c)->4x4> gap> Display( nine ); Image of <(1)>: A vector space object over GF(3) of dimension 5 Image of <(2)>: A vector space object over GF(3) of dimension 4 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . . . 1 1 . . . . 1 . . . . . 1 1 . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . 1 . . . . 1 . . . . . . 1 . 1 . . 1 . A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 1 . . . 1 1 . . . 1 . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> nine( A.1 ); <A vector space object over GF(3) of dimension 5> gap> nine( A.2 ); <A vector space object over GF(3) of dimension 4> gap> nine( A.b ); <A morphism in Category of matrices over GF(3)> gap> Display( nine( A.b ) ); . 1 . . . . 1 . . . . . . 1 . 1 . . 1 . A morphism in Category of matrices over GF(3) gap> IsWellDefined( nine ); true gap> Length( WeakDirectSumDecomposition( nine ) ); 1 gap> fortyone := TensorProductOnObjects( nine, nine ); <(1)->25, (2)->16; (a)->25x25, (b)->25x16, (c)->16x16> gap> IsWellDefined( fortyone ); true gap> fortyone( A.1 ); <A vector space object over GF(3) of dimension 25> gap> fortyone( A.2 ); <A vector space object over GF(3) of dimension 16> gap> fortyone( A.a ) = TensorProductOnMorphisms( nine( A.a ), nine( A.a ) ); true gap> fortyone( A.b ) = TensorProductOnMorphisms( nine( A.b ), nine( A.b ) ); true gap> fortyone( A.c ) = TensorProductOnMorphisms( nine( A.c ), nine( A.c ) ); true gap> Display( fortyone ); Image of <(1)>: A vector space object over GF(3) of dimension 25 Image of <(2)>: A vector space object over GF(3) of dimension 16 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . 1 . . . . . . . . 1 . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . 1 . 1 . . . . . . 1 . . . . . . . 1 . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 1 . . 1 1 . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> etas := WeakDirectSumDecomposition( fortyone : random := false );; gap> dec := List( etas, eta -> List( SetOfObjects( A ), > o -> Dimension( Source( eta( o ) ) ) ) ); [ [ 3, 0 ], [ 3, 0 ], [ 3, 0 ], [ 3, 0 ], [ 0, 3 ], [ 1, 3 ], [ 3, 3 ], [ 3, 3 ], [ 3, 3 ], [ 3, 1 ] ] gap> iso := UniversalMorphismFromDirectSum( etas ); <(1)->25x25, (2)->16x16> gap> IsIsomorphism( iso ); true gap> Display( Source( iso ) ); Image of <(1)>: A vector space object over GF(3) of dimension 25 Image of <(2)>: A vector space object over GF(3) of dimension 16 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . 2 2 . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . 2 . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 2 . . . . . . . . . . . . . . . . 1 . 2 . . . . . . . . . . . . . . 1 2 . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . 1 2 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . 2 . 2 . . . . . . . . . . . . . . . . 1 1 2 . . . . . . . . . . . . . . 1 2 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> Display( iso ); Image of <(1)>: . . 1 . . . 2 1 . 1 1 . . 2 . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . 1 2 . 2 1 1 2 2 2 1 . . 2 . . 1 . . 2 2 . . 1 . . . . . . . . 2 . . . 1 1 . . . . . . . . . 2 . . . . 1 . . . 1 1 . 1 . 2 . 2 . . . 1 . . . 1 1 . . . 1 2 . 2 . 1 2 2 2 1 . . 2 . . 1 . . 2 . . . 1 . . . 1 . . . 1 1 . 1 . . 2 2 . . . 1 . . . 1 1 . . . . 1 . . . 1 . . 1 . 1 1 2 . . . 1 . . . 1 . . . . 1 1 . 2 . 2 . 2 1 1 . . . . . 1 . . 2 . . . 1 . . . . . . . . . . 1 . 2 . 1 1 . . 2 . . . 2 2 . . . . . . . . . . . . . . 1 . 1 . . . . . . . 2 . . . . . . . . . . 2 . 1 . . . . . 1 . . 2 . . . 1 . . . 2 . . . 1 2 . 2 2 . . 1 . . . 2 . 2 . 1 . 1 . 2 . 1 1 . 1 2 1 2 . . . . 1 . 1 . . . 1 1 . . 2 . . 2 . . 1 2 . . 1 . 1 . . 2 . . 1 . . . 1 2 . . . . . 2 . . . 1 2 . 2 2 . . 1 . . . 1 . . . 2 . . . 2 . . 1 . 1 . . 2 2 2 . . 2 . . . 2 . . . 1 . . . . 2 . . 1 2 . . 1 . 1 . . 2 . . . . . . . . . . . . . 2 . . . 1 2 . 2 2 . . 1 . . . . . . . . . . . 1 . . . 2 2 . . 2 . 1 . . 1 . 2 2 1 . 2 1 . . 1 . . 1 . . . 1 . . . 1 2 . . 2 . . 2 2 . . 2 2 . . . . . 1 . . . 2 1 . . 1 . . . . . . 2 . . . 1 . . . 1 . . 2 . 2 . . 1 . 1 . . 2 . 2 2 . 1 1 1 1 . 2 2 . 1 . . 2 1 . . 2 . 2 . . 1 . . 2 2 . 1 2 2 . 1 1 . . 1 . . . 2 1 . 1 1 . . 2 . . . 2 . . . 1 . . 2 An isomorphism in Category of matrices over GF(3) Image of <(2)>: . . 2 . . 1 . . 2 2 1 . . . . . 2 1 . . . . . . . . . . . 1 . . . 2 1 . 2 . 1 . . . . . . . 1 . . . 2 . . 2 . 2 . . . 1 . 1 . . . 2 . 2 . 2 . . . . . . 1 1 . . . . 2 . . 2 1 2 . 2 2 . . 1 1 . . . . . . 1 1 1 . . . 1 . 1 1 . . . . . . . 1 . . 1 . 1 . . 1 . . . . . . . . . . . 1 . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 An isomorphism in Category of matrices over GF(3) A morphism in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> eta := etas[9]; <(1)->3x25, (2)->3x16> gap> TensorProductOnMorphisms( eta, eta ); <(1)->9x625, (2)->9x256> gap> six := Source( eta ); <(1)->3, (2)->3; (a)->3x3, (b)->3x3, (c)->3x3> gap> Display( six ); Image of <(1)>: A vector space object over GF(3) of dimension 3 Image of <(2)>: A vector space object over GF(3) of dimension 3 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . 1 1 . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . 2 1 . . 2 . . . A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 1 . . 1 1 . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> emb := EmbeddingOfSumOfImagesOfAllMorphisms( unit, six ); <(1)->1x3, (2)->0x3> gap> Display( emb ); Image of <(1)>: . . 1 A morphism in Category of matrices over GF(3) Image of <(2)>: (an empty 0 x 3 matrix) A morphism in Category of matrices over GF(3) A morphism in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> s1 := Source( emb ); <(1)->1, (2)->0; (a)->1x1, (b)->1x0, (c)->0x0> gap> Display( s1 ); Image of <(1)>: A vector space object over GF(3) of dimension 1 Image of <(2)>: A vector space object over GF(3) of dimension 0 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): (an empty 1 x 0 matrix) A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): (an empty 0 x 0 matrix) A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> Aop := OppositeAlgebroid( A ); Algebroid( GF(3), FreeCategory( RightQuiver( "q_op(2)[a:1->1,b:2->1,c:2->2]" ) ) ) / relations gap> Yop := YonedaEmbeddingInFunctorCategory( Aop ); Yoneda embedding functor gap> Display( Yop ); Yoneda embedding functor: Algebroid( GF(3), FreeCategory( RightQuiver( "q_op(2)[a:1->1,b:2->1,c:2->2]" ) ) ) / relations | V FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) gap> proj1 := Yop( Aop.1 ); <(1)->3, (2)->3; (a)->3x3, (b)->3x3, (c)->3x3> gap> IsProjective( proj1 ); true gap> Display( proj1 ); Image of <(1)>: A vector space object over GF(3) of dimension 3 Image of <(2)>: A vector space object over GF(3) of dimension 3 Image of (1)-[{ Z(3)^0*(a) }]->(1): . 1 . . . 1 1 . . A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): 1 . . . 1 . . . 1 A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): . 1 . . . 1 1 . . A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> e1 := EmbeddingOfSumOfImagesOfAllMorphisms( unit, proj1 ); <(1)->1x3, (2)->1x3> gap> Source( e1 ); <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1> gap> IsEpimorphism( EmbeddingOfSumOfImagesOfAllMorphisms( proj1, six ) ); false gap> five := CokernelObject( emb ); <(1)->2, (2)->3; (a)->2x2, (b)->2x3, (c)->3x3> gap> Display( five ); Image of <(1)>: A vector space object over GF(3) of dimension 2 Image of <(2)>: A vector space object over GF(3) of dimension 3 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . 2 1 . . 2 A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 1 . . 1 1 . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data
The next calculation shows that the 3-dimensional representation of C_3 associated to object 1 is a single copy of the regular representation of C_3.
gap> SumOfImagesOfAllMorphisms( s1, six ); <(1)->1, (2)->0; (a)->1x1, (b)->1x0, (c)->0x0>
The next calculation shows that the quotient representation five
maps its module at object 1 monomorphically to the module at object 2, which must either be indecomposable of dimension 3, or else the direct sum of indecomposables of dimension 2 and 1.
gap> SumOfImagesOfAllMorphisms( s1, five ); <(1)->0, (2)->0; (a)->0x0, (b)->0x0, (c)->0x0> gap> SumOfImagesOfAllMorphisms( unit, five ); <(1)->1, (2)->1; (a)->1x1, (b)->1x1, (c)->1x1>
The next calculation shows that the module at object 2 for six
is indecomposable of dimension 3. We now have sufficient information to describe six
completely.
gap> SumOfImagesOfAllMorphisms( six, unit ); <(1)->0, (2)->1; (a)->0x0, (b)->0x1, (c)->1x1> gap> proj2 := Yop( Aop.2 ); <(1)->0, (2)->3; (a)->0x0, (b)->0x3, (c)->3x3> gap> IsProjective( proj2 ); true gap> Display( proj2 ); Image of <(1)>: A vector space object over GF(3) of dimension 0 Image of <(2)>: A vector space object over GF(3) of dimension 3 Image of (1)-[{ Z(3)^0*(a) }]->(1): (an empty 0 x 0 matrix) A zero morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): (an empty 0 x 3 matrix) A zero morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): . 1 . . . 1 1 . . A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data
gap> c3c3 := ConcreteCategoryForCAP( [ [2,3,1], [4,5,6], [,,,5,6,4] ] ); A finite concrete category gap> AsFpCategory( c3c3 ); FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) / relations gap> GF3 := HomalgRingOfIntegers( 3 ); GF(3) gap> A := GF3[c3c3]; Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations gap> IsLinearClosureOfACategory( A ); true gap> CatReps := FunctorCategory( A, GF3 ); FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) gap> d := [[1,1,0,0,0],[0,1,1,0,0],[0,0,1,0,0],[0,0,0,1,1],[0,0,0,0,1]];; gap> e := [[0,1,0,0],[0,0,1,0],[0,0,0,0],[0,1,0,1],[0,0,1,0]];; gap> f := [[1,1,0,0],[0,1,1,0],[0,0,1,0],[0,0,0,1]];; gap> nine := AsObjectInFunctorCategory( CatReps, [ 5, 4 ], [ d, e, f ] ); <(1)->5, (2)->4; (a)->5x5, (b)->5x4, (c)->4x4> gap> DecomposeOnceByRandomEndomorphism( nine ); fail
The above shows that our representation nine
is indecomposable (with a high probability). We use the tensor product to generate another representation fortyone
, that is hopefully decomposable, and inspect the two resulting embeddings iota
and kappa
.
gap> fortyone := TensorProductOnObjects( nine, nine ); <(1)->25, (2)->16; (a)->25x25, (b)->25x16, (c)->16x16> gap> result := DecomposeOnceByRandomEndomorphism( fortyone ); [ <(1)->3x25, (2)->1x16>, <(1)->22x25, (2)->15x16> ] gap> iota := result[1]; <(1)->3x25, (2)->1x16> gap> kappa := result[2]; <(1)->22x25, (2)->15x16> gap> Display( fortyone ); Image of <(1)>: A vector space object over GF(3) of dimension 25 Image of <(2)>: A vector space object over GF(3) of dimension 16 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . 1 . . . . . . . . 1 . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . 1 . 1 . . . . . . 1 . . . . . . . 1 . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 1 . . 1 1 . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> S := DirectSum( [ Source( iota ), Source( kappa ) ] ); <(1)->25, (2)->16; (a)->25x25, (b)->25x16, (c)->16x16> gap> Display( S ); Image of <(1)>: A vector space object over GF(3) of dimension 25 Image of <(2)>: A vector space object over GF(3) of dimension 16 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . 1 1 . . . . . . . . . . . . . . . . . . . 1 . . . . 1 . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . 1 1 . . . . . . . . . . . . . . . . . . . . . 1 1 . 1 1 . . . . . . . . . . . . . . . . . . . . . 1 . . 1 . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . 1 . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . 1 . . . . . . . . 1 . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . 1 . 1 . . 2 A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 . . . . . . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 1 . . 1 1 . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 . . . 1 . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 . . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 1 . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data
Comparing the matrices of fortyone
with those of S
, we see that after decomposing once, we have separated one small matrix on the diagonal: A 3\times 3-matrix from S(A.a)
, a 3 \times 1-matrix from S(A.b)
and a 1\times 1-matrix from S(A.c)
. This matches with the source of the embedding iota
.
gap> Display( iota ); Image of <(1)>: 1 . . 2 . 2 . . 1 . 1 . . 2 . 2 2 . 1 1 1 1 . 2 2 . 1 . . 2 1 . . 2 . 2 . . 1 . . 2 2 . 1 2 2 . 1 1 . . 1 . . . 2 1 . 1 1 . . 2 . . . 2 . . . 1 . . 2 A morphism in Category of matrices over GF(3) Image of <(2)>: . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) A morphism in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> Display( Source( iota ) ); Image of <(1)>: A vector space object over GF(3) of dimension 3 Image of <(2)>: A vector space object over GF(3) of dimension 1 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 1 . . 1 1 . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): 1 . . A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data
We can then look at the other embedding of the direct sum decomposition, kappa
. The iteration of WeakDirectSumDecomposition
will continue then with Source( kappa )
. Each time the random endomorphism will decompose the representation, lowering the dimensions of each object at most by 3.
gap> Source( kappa ); <(1)->22, (2)->15; (a)->22x22, (b)->22x15, (c)->15x15> gap> result2 := DecomposeOnceByRandomEndomorphism( Source( kappa ) ); [ <(1)->3x22, (2)->3x15>, <(1)->19x22, (2)->12x15> ]
In order to understand the choices in the above example, we made a similar example to compare the results.
gap> c4c4 := ConcreteCategoryForCAP( [ [2,3,4,1], [5,6,7,8], [,,,,6,7,8,5] ] ); A finite concrete category gap> AsFpCategory( c4c4 ); FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) / relations gap> UnderlyingQuiverAlgebra( AsFpCategory( c4c4 ) ); (Q * q) / [ 1*(a*a*a*a) - 1*(1), 1*(c*c*c*c) - 1*(2), 1*(b*c) - 1*(a*b) ] gap> GF3 := HomalgRingOfIntegers( 3 ); GF(3) gap> A := GF3[c4c4]; Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations gap> SetIsLinearClosureOfACategory( A, true );
In order to find representations of our concrete category C4C4 we need to find matrices a, b, c that satisfy the relations of the algebroid. Here we choose permutation matrices corresponding to the two permutations a, c. We view the permutations on 4 points in \mathrm{S}_4 as elements of \mathrm{Stab}_{\mathrm{S}_6}(5,6) or of \mathrm{Stab}_{\mathrm{S}_5}(5). As permutation matrices, they are block diagonal matrices with the smaller permutation matrix on 4 elements complemented with a 2 \times 2 or 1 \times 1 identity matrix on the diagonal. This gives us two different dimensions for our target matrix category, 6 and 5 respectively, and makes the choice of the matrix for b less trivial.
gap> CatReps := FunctorCategory( A, GF3 ); FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) gap> amat := HomalgMatrix( One( GF3 ) * > [ [ 0,0,0,1,0,0 ], > [ 1,0,0,0,0,0 ], > [ 0,1,0,0,0,0 ], > [ 0,0,1,0,0,0 ], > [ 0,0,0,0,1,0 ], > [ 0,0,0,0,0,1 ] ], 6, 6, GF3 ); <A 6 x 6 matrix over an internal ring> gap> cmat := HomalgMatrix( One(GF3) * > [ [ 0,0,0,1,0 ], > [ 1,0,0,0,0 ], > [ 0,1,0,0,0 ], > [ 0,0,1,0,0 ], > [ 0,0,0,0,1 ] ], 5, 5, GF3 ); <A 5 x 5 matrix over an internal ring> gap> Display( amat^4 ); 1 . . . . . . 1 . . . . . . 1 . . . . . . 1 . . . . . . 1 . . . . . . 1 gap> Display( cmat^4 ); 1 . . . . . 1 . . . . . 1 . . . . . 1 . . . . . 1
Given the matrices a and c above one can now solve the homogenous linear system a*b = b*c in the 30 unknowns b_{11},...,b_{65}. The following 9 variables are free variables:
gap> b11 := 0;; b12 := 1;; b13 := 0;; b21 := 1;; gap> b15 := 0;; b51 := 1;; b55 := 0;; b61 := 1;; b65 := 1;; gap> bmat := HomalgMatrix( One( GF3 ) * > [ [b11,b12,b13,b21,b15], > [b21,b11,b12,b13,b15], > [b13,b21,b11,b12,b15], > [b12,b13,b21,b11,b15], > [b51,b51,b51,b51,b55], > [b61,b61,b61,b61,b65] ], 6, 5, GF3 ); <A 6 x 5 matrix over an internal ring> gap> Display( bmat ); . 1 . 1 . 1 . 1 . . . 1 . 1 . 1 . 1 . . 1 1 1 1 . 1 1 1 1 1 gap> Display( amat * bmat ); 1 . 1 . . . 1 . 1 . 1 . 1 . . . 1 . 1 . 1 1 1 1 . 1 1 1 1 1 gap> Display( bmat * cmat ); 1 . 1 . . . 1 . 1 . 1 . 1 . . . 1 . 1 . 1 1 1 1 . 1 1 1 1 1 gap> amat * bmat = bmat * cmat; true
So the three relations in our algebroid should be satisfied by these matrices, therefore they should provide a well-defined representation of C4C4.
gap> eleven := AsObjectInFunctorCategory( CatReps, [ 6, 5 ], [ amat, bmat, cmat ] ); <(1)->6, (2)->5; (a)->6x6, (b)->6x5, (c)->5x5> gap> IsWellDefined( eleven ); true gap> Display( eleven ); Image of <(1)>: A vector space object over GF(3) of dimension 6 Image of <(2)>: A vector space object over GF(3) of dimension 5 Image of (1)-[{ Z(3)^0*(a) }]->(1): . . . 1 . . 1 . . . . . . 1 . . . . . . 1 . . . . . . . 1 . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . 1 . 1 . 1 . 1 . . . 1 . 1 . 1 . 1 . . 1 1 1 1 . 1 1 1 1 1 A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): . . . 1 . 1 . . . . . 1 . . . . . 1 . . . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data gap> gammas := WeakDirectSumDecomposition( eleven ); [ <(1)->1x6, (2)->0x5>, <(1)->1x6, (2)->1x5>, <(1)->1x6, (2)->1x5>, <(1)->0x6, (2)->2x5>, <(1)->2x6, (2)->0x5>, <(1)->1x6, (2)->1x5> ]
As opposed to nine in the previous example, eleven itself can already be decomposed.
gap> Display( Source( UniversalMorphismFromDirectSum( gammas ) ) ); Image of <(1)>: A vector space object over GF(3) of dimension 6 Image of <(2)>: A vector space object over GF(3) of dimension 5 Image of (1)-[{ Z(3)^0*(a) }]->(1): 1 . . . . . . 2 . . . . . . 1 . . . . . . . 2 . . . . 1 . . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (1)-[{ Z(3)^0*(b) }]->(2): . . . . . 1 . . . . . 2 . . . . . . . . . . . . . . . . . 1 A morphism in Category of matrices over GF(3) Image of (2)-[{ Z(3)^0*(c) }]->(2): 2 . . . . . 1 . . . . . . 2 . . . 1 . . . . . . 1 A morphism in Category of matrices over GF(3) An object in FunctorCategory( Algebroid( GF(3), FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over GF(3) ) given by the above data
‣ IsFiniteConcreteCategory ( object ) | ( filter ) |
Returns: true
or false
The GAP category of a finite concrete category
‣ IsCellInAFiniteConcreteCategory ( object ) | ( filter ) |
Returns: true
or false
The GAP category of cell in a finite concrete category
‣ IsObjectInAFiniteConcreteCategory ( object ) | ( filter ) |
Returns: true
or false
The GAP category of objects in a finite concrete category
‣ IsMorphismInAFiniteConcreteCategory ( object ) | ( filter ) |
Returns: true
or false
The GAP category of morphisms in a finite concrete category
‣ RightQuiverFromConcreteCategory ( C ) | ( attribute ) |
Returns: a right quiver
Return the right quiver q(n) from the concrete category C with n objects.
‣ ConcreteCategoryForCAP ( L ) | ( operation ) |
Returns: a CAP object
Construct finite concrete category out of the list L of morphisms given by images.
gap> c3c3 := ConcreteCategoryForCAP( [ [2,3,1], [4,5,6], [,,,5,6,4] ] ); A finite concrete category gap> objects := SetOfObjects( c3c3 ); [ An object in subcategory given by: <An object in FinSets>, An object in subcategory given by: <An object in FinSets> ] gap> Perform( objects, Display ); An object in subcategory given by: [ 1, 2, 3 ] An object in subcategory given by: [ 4, 5, 6 ] gap> gmorphisms := SetOfGeneratingMorphisms( c3c3 ); [ A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets> ] gap> Perform( gmorphisms, Display ); A morphism in subcategory given by: [ [ 1, 2, 3 ], [ [ 1, 2 ], [ 2, 3 ], [ 3, 1 ] ], [ 1, 2, 3 ] ] A morphism in subcategory given by: [ [ 1, 2, 3 ], [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ], [ 4, 5, 6 ] ] A morphism in subcategory given by: [ [ 4, 5, 6 ], [ [ 4, 5 ], [ 5, 6 ], [ 6, 4 ] ], [ 4, 5, 6 ] ]
‣ AsFpCategory ( C ) | ( attribute ) |
Returns: a finitely presented category
Return a finitely presented category isomorphic to the finite category C.
gap> c3c3c3 := ConcreteCategoryForCAP( > [ [2,3,1], [4,5,6], [,,,5,6,4], > [,,,7,8,9], [,,,,,,8,9,7], [7,8,9] ] ); A finite concrete category gap> objects := SetOfObjects( c3c3c3 ); [ An object in subcategory given by: <An object in FinSets>, An object in subcategory given by: <An object in FinSets>, An object in subcategory given by: <An object in FinSets> ] gap> gmorphisms := SetOfGeneratingMorphisms( c3c3c3 ); [ A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets>, A morphism in subcategory given by: <A morphism in FinSets> ] gap> q := RightQuiverFromConcreteCategory( c3c3c3 ); q(3)[a:1->1,b:1->2,c:2->2,d:2->3,e:3->3,f:1->3] gap> relEndo := RelationsOfEndomorphisms( c3c3c3 ); [ [ (a*a*a), (1) ], [ (c*c*c), (2) ], [ (e*e*e), (3) ] ] gap> C := AsFpCategory( c3c3c3 ); FreeCategory( RightQuiver( "q(3)[a:1->1,b:1->2,c:2->2,d:2->3,e:3->3,f:1->3]" ) ) / relations gap> A := UnderlyingQuiverAlgebra( C ); (Q * q) / [ 1*(a*a*a) - 1*(1), 1*(c*c*c) - 1*(2), 1*(e*e*e) - 1*(3), 1*(b*c) - 1*(a*b), 1*(b*d) - 1*(f), 1*(f*e) - 1*(a*f), 1*(d*e) - 1*(c*d) ] gap> unit := A.1 + A.2 + A.3; { 1*(3) + 1*(2) + 1*(1) } gap> unit * A.a = A.a; true gap> A.f * unit = A.f; true
Return the k-linear closure of the category C over the commutative ring k.
‣ Algebroid ( k, C ) | ( operation ) |
‣ [] ( k, C ) | ( operation ) |
Returns: a k-linear category
We can also create finite concrete categories with objects not starting with 1, to demonstrate that ConcreteCategoryForCAP
( [ [,,,5,6,4], [,,,7,8,9], [,,,,,,8,9,7] ] ) and ConcreteCategoryForCAP
( [ [2,3,1], [4,5,6], [,,,5,6,4] ] ) yield even identical categories, in particular, their underlying quivers are identical, inducing identical algebroids, and identical categories of representations.
gap> ccat1 := ConcreteCategoryForCAP( [ [2,3,1], [4,5,6], [,,,5,6,4] ] ); A finite concrete category gap> ccat2 := ConcreteCategoryForCAP( [ [,,,5,6,4], [,,,7,8,9], [,,,,,,8,9,7] ] ); A finite concrete category gap> Q := HomalgFieldOfRationals( ); Q gap> A1 := Q[ccat1]; Algebroid( Q, FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations gap> A2 := Q[ccat2]; Algebroid( Q, FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations gap> IsIdenticalObj( A1, A2 ); true gap> UnderlyingCategory( A1 ); FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) / relations gap> UnderlyingCategory( A2 ); FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) / relations gap> IsIdenticalObj( UnderlyingCategory( A1 ), UnderlyingCategory( A2 ) ); true gap> CatReps1 := FunctorCategory( A1, Q ); FunctorCategory( Algebroid( Q, FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over Q ) gap> CatReps2 := FunctorCategory( A2, Q ); FunctorCategory( Algebroid( Q, FreeCategory( RightQuiver( "q(2)[a:1->1,b:1->2,c:2->2]" ) ) ) / relations, Category of matrices over Q ) gap> IsIdenticalObj( CatReps1, CatReps2 ); true
‣ RelationsOfEndomorphisms ( C ) | ( operation ) |
Returns: list of relations as generators of ideal.
Return the endomorphism relations of the category C.
The two examples below test RelationsOfEndomorphisms
on endomorphisms that are not bijective. The first generating morphism of the first example is constant, and hence an idempotent.
gap> ccat := ConcreteCategoryForCAP( [ [1,1,1], [4,5,6], [,,,5,6,4] ] ); A finite concrete category gap> relEndo := RelationsOfEndomorphisms( ccat ); [ [ (a*a), (a) ], [ (c*c*c), (2) ] ]
The next example is a single permutation defined by the companion matrix of a^8-a^3, hence neither a^5-a^0, a^6-a^1, nor a^7-a^2 are zero:
gap> ccat := ConcreteCategoryForCAP( [ [2,3,4,5,6,7,8,4] ] ); A finite concrete category gap> relEndo := RelationsOfEndomorphisms( ccat ); [ [ (a*a*a*a*a*a*a*a), (a*a*a) ] ]
‣ EmbeddingOfSubRepresentation ( eta, F ) | ( operation ) |
Returns: an morphism in a Hom-category
Concstruct the embedding of a subrepresentation S of F by a list eta of morphisms, where the image embeddings thereof are the components of the natural monomorphism from S into F.
‣ ConvertToMapOfFinSets ( objects_list, generator ) | ( function ) |
Returns: a morphism of finite sets
Construct the map of finite sets corresponding to the list of images in the convention of catreps.
gap> c3c3 := ConcreteCategory([[2,3,1],[4,5,6],[,,,5,6,4]]); rec( codomain := [ 1, 2, 2 ], domain := [ 1, 1, 2 ], generators := [ [ 2, 3, 1 ], [ 4, 5, 6 ], [ ,,, 5, 6, 4 ] ], objects := [ [ 1, 2, 3 ], [ 4, 5, 6 ] ], operations := rec( ) ) gap> objects := List( c3c3.objects, FinSet ); [ <An object in FinSets>, <An object in FinSets> ] gap> g1 := ConvertToMapOfFinSets( objects, c3c3.generators[1] ); <A morphism in FinSets> gap> Display( g1 ); [ [ 1, 2, 3 ], [ [ 1, 2 ], [ 2, 3 ], [ 3, 1 ] ], [ 1, 2, 3 ] ] gap> g2 := ConvertToMapOfFinSets( objects, c3c3.generators[2] ); <A morphism in FinSets> gap> Display( g2 ); [ [ 1, 2, 3 ], [ [ 1, 4 ], [ 2, 5 ], [ 3, 6 ] ], [ 4, 5, 6 ] ] gap> g3 := ConvertToMapOfFinSets( objects, c3c3.generators[3] ); <A morphism in FinSets> gap> Display( g3 ); [ [ 4, 5, 6 ], [ [ 4, 5 ], [ 5, 6 ], [ 6, 4 ] ], [ 4, 5, 6 ] ] gap> g := ConvertToMapOfFinSets( objects, [,,,1,1,1] ); <A morphism in FinSets> gap> Display( g ); [ [ 4, 5, 6 ], [ [ 4, 1 ], [ 5, 1 ], [ 6, 1 ] ], [ 1, 2, 3 ] ]
generated by GAPDoc2HTML