gap> LoadPackage( "Algebroids", false );
true
gap> F2 := HomalgRingOfIntegersInSingular( 2 );
GF(2)
gap> Alg_F2 := CategoryOfFpAlgebras( F2 );
CategoryOfFpAlgebras( GF(2) )
gap> Display( Alg_F2 );
A CAP category with name CategoryOfFpAlgebras( GF(2) ):
30 primitive operations were used to derive 85 operations for this category \
which algorithmically
* IsCategoryWithInitialObject
* IsCartesianCategory
* IsSymmetricMonoidalCategory
gap> T := TerminalObject( Alg_F2 );
<An object in CategoryOfFpAlgebras( GF(2) )>
gap> Display( T );
GF(2) / [ 1*id(o) ]
gap> t := UniversalMorphismIntoTerminalObject( T );
<A split monomorphism in CategoryOfFpAlgebras( GF(2) )>
gap> id0 := IdentityMorphism( T );
<An identity morphism in CategoryOfFpAlgebras( GF(2) )>
gap> id0 = t;
true
gap> K := TensorUnit( Alg_F2 );
<An object in CategoryOfFpAlgebras( GF(2) )>
gap> Display( K );
GF(2) / [ ]
gap> q1 := FinQuiver( "q(o)[x:o->o,y:o->o]" );
FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" )
gap> P1 := PathCategory( q1 );
PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" ) )
gap> L1 := F2[P1];
GF(2)-LinearClosure( PathCategory( \
FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" ) ) )
gap> Q1 := L1 / [ L1.x^2 - L1.x, L1.y^3 - L1.y, L1.xy - L1.y * (L1.x+L1.id_o) ];
GF(2)-LinearClosure( PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o]" ) ) ) / \
[ 1*x^2 + 1*x, 1*y^3 + 1*y, 1*y⋅x + 1*x⋅y + 1*y ]
gap> Dimension( Q1 );
6
gap> AQ1 := AssociatedAlgebroid( Q1 );
Algebra( GF(2), FreeCategory( RightQuiver( "q(o)[x:o->o,y:o->o]" ) ) ) / \
relations
gap> Dimension( AQ1 );
6
gap> A1 := Q1 / Alg_F2;
<An object in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( A1 );
true
gap> Dimension( A1 );
6
gap> Display( A1 );
GF(2)<x,y> / [ 1*x^2 + 1*x, 1*y^3 + 1*y, 1*y⋅x + 1*x⋅y + 1*y ]
gap> id1 := IdentityMorphism( A1 );
<An identity morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( id1 );
true
gap> ProjectionOntoCoequalizer( [ id1, id1 ] ) = id1;
true
gap> unit1 := UniversalMorphismFromInitialObject( A1 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> Display( unit1 );
GF(2)<x,y> / [ 1*x^2 + 1*x, 1*y^3 + 1*y, 1*y⋅x + 1*x⋅y + 1*y ]
^
|
[ ]
|
GF(2) / [ ]
gap> counit1 := Counit( A1, [ 1, 0 ] );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( counit1 );
true
gap> Display( counit1 );
GF(2) / [ ]
^
|
[ 1*id(o), 0 ]
|
GF(2)<x,y> / [ 1*x^2 + 1*x, 1*y^3 + 1*y, \
1*y⋅x + 1*x⋅y + 1*y ]
gap> o := A1.id_o;
1*id(o):(o) -≻ (o)
gap> x := A1.x;
1*x:(o) -≻ (o)
gap> y := A1.y;
1*y:(o) -≻ (o)
gap> comult1 := Comultiplication( A1,
> [ [ [ o, x ], [ x, o ], [ o, o ], [ y^2, y^2 ] ],
> [ [ o, y ], [ y, o + y^2 ] ] ] );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> q2 := FinQuiver( "q(o)[x:o->o,y:o->o,z:o->o,t:o->o]" );
FinQuiver( "q(o)[x:o-≻o,y:o-≻o,z:o-≻o,t:o-≻o]" )
gap> P2 := PathCategory( q2 );
PathCategory( FinQuiver( "q(o)[x:o-≻o,y:o-≻o,z:o-≻o,t:o-≻o]" ) )
gap> L2 := F2[P2];
GF(2)-LinearClosure( PathCategory( \
FinQuiver( "q(o)[x:o-≻o,y:o-≻o,z:o-≻o,t:o-≻o]" ) ) )
gap> Q2 := L2 / [ L2.x+L2.y+L2.t+L2.tt-L2.id_o, L2.xx-L2.x, L2.yy-L2.y, L2.xy, L2.yx,
> L2.zz-L2.t-L2.tt, L2.zz-L2.ttt, L2.zt-L2.ttz, L2.zt+L2.ztt-L2.z,
> L2.xt+L2.yt, L2.tx+L2.ty ];
GF(2)-LinearClosure( PathCategory( \
FinQuiver( "q(o)[x:o-≻o,y:o-≻o,z:o-≻o,t:o-≻o]" ) ) ) / \
[ 1*t^2 + 1*x + 1*y + 1*t + 1*id(o), 1*x^2 + 1*x, 1*y^2 + 1*y, ... ]
gap> A2 := Q2 / Alg_F2;
<An object in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( A2 );
true
gap> Dimension( A2 );
6
gap> Display( A2 );
GF(2)<x,y,z,t> / [ 1*t^2 + 1*x + 1*y + 1*t + 1*id(o), 1*x^2 + 1*x, \
1*y^2 + 1*y, ... ]
gap> A12 := TensorProduct( A1, A2 );
<An object in CategoryOfFpAlgebras( GF(2) )>
gap> Dimension( A12 );
36
gap> IsWellDefined( A12 );
true
gap> beta := Braiding( A1, A2 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( beta );
true
gap> beta_i := BraidingInverse( A1, A2 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( beta_i );
true
gap> IsOne( PreCompose( beta, beta_i ) );
true
gap> IsOne( PreCompose( beta_i, beta ) );
true
gap> alpha := AssociatorLeftToRight( A1, A2, A1 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( alpha );
true
gap> alpha_i := AssociatorRightToLeft( A1, A2, A1 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( alpha_i );
true
gap> IsOne( PreCompose( alpha, alpha_i ) );
true
gap> IsOne( PreCompose( alpha_i, alpha ) );
true
gap> A1p2 := DirectProduct( A1, A2 );
<An object in CategoryOfFpAlgebras( GF(2) )>
gap> Dimension( A1p2 );
12
gap> pr1 := ProjectionInFactorOfDirectProduct( [ A1, A2 ], 1 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( pr1 );
true
gap> pr2 := ProjectionInFactorOfDirectProduct( [ A1, A2 ], 2 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( pr2 );
true
gap> u := UniversalMorphismIntoDirectProduct( [ A1, A2 ], A1p2, [ pr1, pr2 ] );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( u );
true
gap> IsOne( u );
true
gap> v := TensorProduct( pr1, pr2 );
<A morphism in CategoryOfFpAlgebras( GF(2) )>
gap> IsWellDefined( v );
true