6.3-12 \*
‣ IsAdmissibleAlgebroid ( A, i ) | ( property ) |
Returns: a list
The arguments are an algebroid A linear over a field \(k\). This output is true
iff the following two conditions hold: (1) the union of all identity morphisms and all generating morphism remain linear independent in the quotient category \(C/\mathfrak{m}^2\); (2) \(\mathfrak{m}^i=0\) for some \(i\in\mathbb{N}\), where \(\mathfrak{m}^i=\)PowerOfArrowIdeal
(A,\(i\)).
‣ DataTablesOfCategory ( A ) | ( attribute ) |
Returns: a CAP functor
The argument is a \(k\)-algebroid A defined by a finite dimensional quiver-algebra. This operation extracts a data-tables record from A which can be used to construct an algebroid \(A\), that is isomorphic to A.
‣ IsomorphismOntoAlgebroidFromDataTables ( A, A ) | ( operation ) |
Returns: a CAP functor
?
‣ IsomorphismFromAlgebroidFromDataTables ( A, A ) | ( operation ) |
Returns: a CAP functor
?
‣ QuotientCategory ( A, I ) | ( operation ) |
Returns: a record
The arguments are an algebroid \(A\) and a list I of morphisms in \(A\). The output is the quotient category \(A/I\) of \(A\) modulo the two-sided ideal of morphisms generated by I.
‣ CategoryDatum ( A ) | ( attribute ) |
Returns: a record
The data tables used to define \(A\).
‣ BasesElements ( A ) | ( attribute ) |
Returns: a list of lists
The argument is an algebroid A. The output is a list of lists \(L\) where \(L[i][j]\) is the basis of the external hom \(\mathrm{Hom}_B(u,v)\) where \(u\) and \(v\) are \(i\)'th resp. \(j\)'th objects in \(A\).
‣ DecompositionIndicesOfBasesElements ( A ) | ( attribute ) |
Returns: a list of lists
The argument is an algebroid A. The output is a list of lists \(L\) where \(L[i][j]\) is the decomposition indices of the basis elements of \(\mathrm{Hom}_B(u,v)\) where \(u\) and \(v\) are \(i\)'th resp. \(j\)'th objects in \(A\). In other words, it is the third entry in the underlying defining data tables.
‣ LabelsOfBasesElements ( A ) | ( attribute ) |
Returns: a list of lists
The argument is an algebroid A. The output is a list of lists \(L\) where \(L[i][j]\) is the labels of the basis elements of \(\mathrm{Hom}_B(u,v)\) where \(u\) and \(v\) are \(i\)'th resp. \(j\)'th objects in \(A\).
‣ LaTeXStringsOfBasesElements ( A ) | ( attribute ) |
Returns: a list of lists
The argument is an algebroid A. The output is a list of lists \(L\) where \(L[i][j]\) is the latex strings of the basis elements of \(\mathrm{Hom}_B(u,v)\) where \(u\) and \(v\) are \(i\)'th resp. \(j\)'th objects in \(A\).
‣ PowerOfArrowIdeal ( A, i ) | ( operation ) |
Returns: a list
The arguments are an algebroid A and a non-negative integer i. The output is a generating set for \(\mathfrak{m}^i\) where \(\mathfrak{m}\) is the ideal generated by all generating morphisms in A.
‣ AssignSetOfObjects ( A[, optional_string] ) | ( operation ) |
Returns: nothing
The arguments are an algebroid A and a string optional_string. This operation assigns the objects of A to global variables. Names of the variables are the concatenation of the labels of the objects of A with optional_string. The default value of optional_string is the empty string.
‣ AssignSetOfGeneratingMorphisms ( A[, optional_string] ) | ( operation ) |
Returns: nothing
The arguments are an algebroid A and a string optional_string. This operation assigns the generating morphisms of A to global variables. Names of the variables are the concatenation of the labels of the generating morphisms of A with optional_string. The default value of optional_string is the empty string.
‣ ObjectIndex ( v ) | ( attribute ) |
Returns: an integer
The argument is an object v in an algebroid A. The output is the index of v in SetOfObjects
(A).
‣ CoefficientsList ( alpha ) | ( attribute ) |
Returns: a CAP category morphism
The argument is a morphism alpha in an algebroid A. The output is the list of coefficients of alpha with respect to the basis of external hom \(\mathrm{Hom}_B(u,v)\) where \(u\) and \(v\) are source resp. target of alpha.
‣ IndicesOfSupportMorphisms ( alpha ) | ( attribute ) |
Returns: a CAP category morphism
The argument is a morphism alpha in an algebroid A. The output is the indices of the non-zero entries of CoefficientsList
(alpha).
‣ CoefficientsOfSupportMorphisms ( alpha ) | ( attribute ) |
Returns: a CAP category morphism
The argument is a morphism alpha in an algebroid A. The output is the list of elements in CoefficientsList
(alpha) that correspond to IndicesOfSupportMorphisms
(alpha).
‣ SupportMorphisms ( alpha ) | ( attribute ) |
Returns: a CAP category morphism
The argument is a morphism alpha from u to v in an algebroid A. The output is the list of elements in BasisOfExternalHom
(u,v) that correspond to IndicesOfSupportMorphisms
(alpha).
‣ DecompositionOfMorphismInAlgebroid ( alpha ) | ( attribute ) |
Returns: a list of pairs
The argument is a morphism alpha in an algebroid \(A\) (over a commutative ring \(k\)). The output is a list of pairs \(L=[[c_1,l_1],..,[c_n,l_n]]\) where for each \(i=1,\dots,n\), \(c_i\) is a non-zero element in \(k\) and \(l_i\) is either a list containing an identity morphism or a list of (precomposable) generating morphisms such that alpha = \(c_1\cdot\mathrm{PreCompose}(l_1)+..+c_n\cdot\mathrm{PreCompose}(l_n)\).
‣ DecompositionIndicesOfMorphismInAlgebroid ( alpha ) | ( attribute ) |
Returns: a list of pairs
The argument is a morphism alpha in an algebroid \(A\) (over a commutative ring \(k\)). The output is a list of pairs \(L=[[c_1,l_1],..,[c_n,l_n]]\) where for each \(i=1,\dots,n\), \(c_i\) is a non-zero element in \(k\) and \(l_i\) is either the empty-list or a list of indices of (precomposable) generating morphisms. The output can be used to compute DecompositionOfMorphismInAlgebroid
(alpha).
‣ OppositeAlgebroid ( A ) | ( attribute ) |
Returns: a CAP category
The argument is an algebroid A. The ouput is the opposite algebroid \(A^{\mathrm{op}}\) constructed as an algebroid from data tables.
‣ TensorProductOfAlgebroids ( A, B ) | ( operation ) |
Returns: a CAP category
The arguments are two algebroids A and B. The output is the tensor product algebroid A\(\otimes\)B.
6.3-12 \*
‣ \* ( A, B ) | ( operation ) |
Returns: a CAP category
Delegates to TensorProductOfAlgebroids
(A,B).
‣ ElementaryTensor ( a, b, T ) | ( operation ) |
Returns: a CAP category object
The arguments are two objects a, b and a tensor product algebroid T\(=A\otimes B\) where a and b belong to \(A\) resp. \(B\). The output is the object \(a\otimes b\) in T.
‣ ElementaryTensor ( f, g, T ) | ( operation ) |
Returns: a CAP category morphism
The arguments are two morphisms f, g and a tensor product algebroid T\(=A\otimes B\) where f and g belong to \(A\) resp. \(B\). The output is the morphism \(f\otimes g\) in T.
‣ AlgebroidFromDataTables ( data_tables ) | ( operation ) |
Returns: a CAP category
Construct an enrichted algebroid \(A\) out of the data_tables consisting of \(7\) entries:
data_tables[1] is the commutative ring \(k\) over which \(A\) is linear.
data_tables[2] is the underlying quiver or a string that can be used to constructe a CAP quiver. Suppose the number of objects is nr_objs
and the number of morphisms is nr_mors
.
data_tables[3]: an array \(L\) containing nr_objs
rows and nr_objs
columns. The entry \(L[i][j]\) is the list of the indices of the basis elements of \(\mathrm{Hom}_{A}(v_i,v_j)\) where \(v_i\) and \(v_j\) are the \(i\)'th resp. \(j\)'th objects.
data_tables[4]: an array \(L\) containing nr_objs
rows and nr_mors
columns. The entry \(L[i][j]\) contains the matrices of the \(k\)-linear maps \(\mathrm{Hom}_{A}(v_i,m_j)\) where \(u_i\) and \(m_j\) are the \(i\)'th object and the \(j\)'th generating morphism.
data_tables[5]: an array \(L\) containing nr_objs
rows and nr_mors
columns. The entry \(L[i][j]\) contains the matrices of the \(k\)-linear maps \(\mathrm{Hom}_{A}(m_j,v_i)\) where \(u_i\) and \(m_j\) are the \(i\)'th object and the \(j\)'th generating morphism.
gap> LoadPackage( "Algebroids", false ); true gap> q := RightQuiver( "q(0,1,2,3)[a:0->1,b:1->3,c:0->2,d:2->3,e:3->3]" ); q(0,1,2,3)[a:0->1,b:1->3,c:0->2,d:2->3,e:3->3] gap> F := FreeCategory( q ); FreeCategory( RightQuiver( "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> kF := k[F]; Algebroid( Q, FreeCategory( RightQuiver( "q(0,1,2,3)[a:0->1,b:1->3,c:0->2,d:2->3, e:3->3]" ) ) ) gap> B := kF / [ kF.e^3 ]; Algebroid( Q, FreeCategory( RightQuiver( "q(0,1,2,3)[a:0->1,b:1->3,c:0->2,d:2->3, e:3->3]" ) ) ) / relations gap> data_tables := DataTablesOfCategory( B );; gap> data_tables[1]; Q gap> data_tables[2]; FinQuiver( "q(0,1,2,3)[a:0-≻1,b:1-≻3,c:0-≻2,d:2-≻3,e:3-≻3]" ) gap> data_tables[3]; [[[ [] ], [ [1] ], [ [3] ], [ [1,2],[3,4],[1,2,5],[3,4,5],[1,2,5,5],[3,4,5,5]]], [[ ], [ [] ], [ ], [ [2],[2,5],[2,5,5] ]], [[ ], [ ], [ [] ], [ [4],[4,5],[4,5,5] ]], [[ ], [ ], [ ], [ [],[5],[5,5] ]]] gap> data_tables[4][2][5]; [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 0, 0, 0 ] ] gap> data_tables[5][4][1]; [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ] ] gap> A := AlgebroidFromDataTables( data_tables );; # alternatively, gap> A := AlgebroidFromDataTables( B ); 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> AssignSetOfObjects( A, "V_" ); #I MakeReadWriteGlobal: V_0 already read-write #I MakeReadWriteGlobal: V_1 already read-write #I MakeReadWriteGlobal: V_2 already read-write #I MakeReadWriteGlobal: V_3 already read-write gap> AssignSetOfGeneratingMorphisms( A ); #I MakeReadWriteGlobal: a already read-write #I MakeReadWriteGlobal: b already read-write #I MakeReadWriteGlobal: c already read-write #I MakeReadWriteGlobal: d already read-write #I MakeReadWriteGlobal: e already read-write gap> SetOfObjects( A ); [ <(0)>, <(1)>, <(2)>, <(3)> ] gap> A.("0"); <(0)> gap> V_0; <(0)> gap> IsEqualForObjects( A.("0"), V_0 ); true gap> ObjectConstructor( A, 1 ) = A.("0"); true gap> SetOfGeneratingMorphisms( A ); [ <1*a:(0) -≻ (1)>, <1*b:(1) -≻ (3)>, <1*c:(0) -≻ (2)>, <1*d:(2) -≻ (3)>, <1*e:(3) -≻ (3)> ] gap> IsCongruentForMorphisms( A.("a"), a ); true gap> Perform( [ "V_0", "V_1", "V_2", "V_3" ], MakeReadWriteGlobal ); gap> Perform( [ "a", "b", "c", "d", "e" ], MakeReadWriteGlobal ); gap> HomStructure( A.("0"), A.("3") ); <A row module over Q of rank 6> gap> hom_03 := BasisOfExternalHom( A.("0"), A.("3") ); [ <1*a⋅b:(0) -≻ (3)>, <1*c⋅d:(0) -≻ (3)>, <1*a⋅b⋅e:(0) -≻ (3)>, <1*c⋅d⋅e:(0) -≻ (3)>, <1*a⋅b⋅e^2:(0) -≻ (3)>, <1*c⋅d⋅e^2:(0) -≻ (3)> ] gap> alpha := 2*hom_03[1] + 3*hom_03[6]; <2*a⋅b + 3*c⋅d⋅e^2:(0) -≻ (3)> gap> LaTeXOutput( alpha ); "{0}-\\left({2\\cdot {a}{b} + 3\\cdot {c}{d}{e}^{2}}\\right)\\rightarrow{3}" gap> alpha = MorphismConstructor( A, A.("0"), [ 2, 0, 0, 0, 0, 3 ], A.("3") ); true gap> CoefficientsList( alpha ); [ 2, 0, 0, 0, 0, 3 ] gap> IndicesOfSupportMorphisms( alpha ); [ 1, 6 ] gap> CoefficientsOfSupportMorphisms( alpha ); [ 2, 3 ] gap> SupportMorphisms( alpha ); [ <1*a⋅b:(0) -≻ (3)>, <1*c⋅d⋅e^2:(0) -≻ (3)> ] gap> DecompositionIndicesOfMorphismInAlgebroid( alpha ); [ [ 2, [ 1, 2 ] ], [ 3, [ 3, 4, 5, 5 ] ] ] gap> DecompositionOfMorphismInAlgebroid( alpha ); [ [ 2, [ <1*a:(0) -≻ (1)>, <1*b:(1) -≻ (3)> ] ], [ 3, [ <1*c:(0) -≻ (2)>, <1*d:(2) -≻ (3)>, <1*e:(3) -≻ (3)>, <1*e:(3) -≻ (3)> ] ] ] gap> A.("a⋅b⋅e"); <1*a⋅b⋅e:(0) -≻ (3)> gap> A.("abe"); <1*a⋅b⋅e:(0) -≻ (3)> gap> PreCompose( A.("a"), A.("b") ) = A.("ab"); true gap> U := IsomorphismOntoAlgebroidFromDataTables( B, A ); Isomorphism functor onto algebroid from data tables gap> V := IsomorphismFromAlgebroidFromDataTables( A, B ); Isomorphism functor from algebroid from data tables gap> ApplyFunctor( PreCompose( V, U ), alpha ) = alpha; true #@if ValueOption( "no_precompiled_code" ) <> true gap> V := ExtendFunctorToAdditiveClosures( V ); Extension of Isomorphism functor from algebroid from data tables to additive closures gap> add_A := SourceOfFunctor( V ); AdditiveClosure( 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> IsBound( add_A!.precompiled_functions_added ); true gap> add_B := RangeOfFunctor( V ); AdditiveClosure( Algebroid( Q, FreeCategory( RightQuiver( "q(0,1,2,3)[a:0->1, b:1->3,c:0->2,d:2->3,e:3->3]" ) ) ) / relations ) gap> IsBound( add_B!.precompiled_functions_added ); true gap> o1 := RandomObject( add_A, [ [ 5 ], [ 1 ] ] );; gap> o2 := RandomObject( add_A, [ [ 5 ], [ 1 ] ] );; gap> V_o1 := V( o1 );; gap> V_o2 := V( o2 );; gap> s1 := Sum( BasisOfExternalHom( o1, o2 ) );; gap> s2 := Sum( BasisOfExternalHom( V_o1, V_o2 ) );; gap> V( s1 ) = s2; true gap> f := RandomMorphism( o1, o2, 20 );; gap> g := RandomMorphism( o1, o2, 20 );; gap> V_f := V( f );; gap> V_g := V( g );; gap> m1 := UnderlyingMatrix( HomStructure( f, g ) );; gap> m2 := UnderlyingMatrix( HomStructure( V_f, V_g ) );; gap> m1 = m2; true gap> IsZero( PreCompose( f, WeakCokernelProjection( f ) ) ); true gap> IsZero( PreCompose( WeakKernelEmbedding( f ), f ) ); true gap> freyd_B := FreydCategory( add_A ); Freyd( AdditiveClosure( 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> IsAbelianCategory( freyd_B ); true #@fi gap> A_op := OppositeAlgebroid( A ); Q-algebroid( {0,1,2,3}[a:1-≻0,b:3-≻1,c:2-≻0,d:3-≻2,e:3-≻3] ) defined by 4 objects and 5 generating morphisms gap> A_op.("ba"); <1*b⋅a:(3) -≻ (0)> gap> add_A := AdditiveClosure( A ); AdditiveClosure( 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> T := DirectSum( List( SetOfObjects( A ), o -> o / add_A ) ); <An object in AdditiveClosure( 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 ) defined by 4 underlying objects> 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> AA := TensorProductOfAlgebroids( A, A ); Q-algebroid( {0⊗0,0⊗1,0⊗2,..,3⊗1,3⊗2,3⊗3}[0⊗a:0⊗0-≻0⊗1,0⊗b:0⊗1-≻0⊗3, 0⊗c:0⊗0-≻0⊗2,..,e⊗1:3⊗1-≻3⊗1,e⊗2:3⊗2-≻3⊗2,e⊗3:3⊗3-≻3⊗3] ) defined by 16 objects and 40 generating morphisms gap> ElementaryTensor( A.0, A.1 ); <(0⊗1)> gap> ElementaryTensor( A.a, A.b ); <1*a⊗b:(0⊗1) -≻ (1⊗3)> gap> ElementaryTensor( A.0, A.b ); <1*id(0)⊗b:(0⊗1) -≻ (0⊗3)> gap> ElementaryTensor( A.a, A.1 ); <1*a⊗id(1):(0⊗1) -≻ (1⊗1)> gap> 3x3 := AA.("3⊗3"); <(3⊗3)> gap> AA.("e⊗1"); <1*e⊗id(1):(3⊗1) -≻ (3⊗1)> gap> u := RandomMorphism( 3x3, 3x3, 15 );; gap> v := RandomMorphism( 3x3, 3x3, 15 );; gap> w := RandomMorphism( 3x3, 3x3, 15 );; gap> HomStructure( PreCompose( [ u, v, w ] ) ) > = PreCompose( HomStructure( v ), HomStructure( u, w ) ); true
‣ IsAlgebroidFromDataTables ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of objects in an algebroid from data tables.
‣ IsCellInAlgebroidFromDataTables ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of cells in an algebroid from data tables.
‣ IsObjectInAlgebroidFromDataTables ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of algebroids from data tables.
‣ IsMorphismInAlgebroidFromDataTables ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of morphisms in an algebroid from data tables.
generated by GAPDoc2HTML