Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 Ind

### 6 Algebroids from data tables

#### 6.1 Properties

 ‣ 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$$).

#### 6.2 Attributes

##### 6.2-1 DataTablesOfCategory
 ‣ 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.

##### 6.2-2 IsomorphismOntoAlgebroidFromDataTables
 ‣ IsomorphismOntoAlgebroidFromDataTables( A, A ) ( operation )

Returns: a CAP functor

?

##### 6.2-3 IsomorphismFromAlgebroidFromDataTables
 ‣ IsomorphismFromAlgebroidFromDataTables( A, A ) ( operation )

Returns: a CAP functor

?

##### 6.2-4 QuotientCategory
 ‣ 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.

##### 6.2-5 CategoryDatum
 ‣ CategoryDatum( A ) ( attribute )

Returns: a record

The data tables used to define $$A$$.

##### 6.2-6 BasesElements
 ‣ 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$$.

##### 6.2-7 DecompositionIndicesOfBasesElements
 ‣ 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.

##### 6.2-8 LabelsOfBasesElements
 ‣ 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$$.

##### 6.2-9 LaTeXStringsOfBasesElements
 ‣ 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$$.

##### 6.2-10 PowerOfArrowIdeal
 ‣ 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.

#### 6.3 Operations

##### 6.3-1 AssignSetOfObjects
 ‣ 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.

##### 6.3-2 AssignSetOfGeneratingMorphisms
 ‣ 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.

##### 6.3-3 ObjectIndex
 ‣ 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).

##### 6.3-4 CoefficientsList
 ‣ 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.

##### 6.3-5 IndicesOfSupportMorphisms
 ‣ 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).

##### 6.3-6 CoefficientsOfSupportMorphisms
 ‣ 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).

##### 6.3-7 SupportMorphisms
 ‣ 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).

##### 6.3-8 DecompositionOfMorphismInAlgebroid
 ‣ 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)$$.

##### 6.3-9 DecompositionIndicesOfMorphismInAlgebroid
 ‣ 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).

##### 6.3-10 OppositeAlgebroid
 ‣ 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.

##### 6.3-11 TensorProductOfAlgebroids
 ‣ 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).

##### 6.3-13 ElementaryTensor
 ‣ 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.

##### 6.3-14 ElementaryTensor
 ‣ 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.

#### 6.4 Constructors

##### 6.4-1 AlgebroidFromDataTables
 ‣ 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_" );
gap> AssignSetOfGeneratingMorphisms( A );
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
gap> add_A := SourceOfFunctor( V );
defined by 4 objects and 5 generating morphisms )
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 )
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 );
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)>
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


#### 6.5 GAP categories

##### 6.5-1 IsAlgebroidFromDataTables
 ‣ IsAlgebroidFromDataTables( arg ) ( filter )

Returns: true or false

The GAP category of objects in an algebroid from data tables.

##### 6.5-2 IsCellInAlgebroidFromDataTables
 ‣ IsCellInAlgebroidFromDataTables( arg ) ( filter )

Returns: true or false

The GAP category of cells in an algebroid from data tables.

##### 6.5-3 IsObjectInAlgebroidFromDataTables
 ‣ IsObjectInAlgebroidFromDataTables( arg ) ( filter )

Returns: true or false

The GAP category of algebroids from data tables.

##### 6.5-4 IsMorphismInAlgebroidFromDataTables
 ‣ IsMorphismInAlgebroidFromDataTables( arg ) ( filter )

Returns: true or false

The GAP category of morphisms in an algebroid from data tables.

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 Ind

generated by GAPDoc2HTML