gap> FinQuivers;
FinQuivers
gap> V := FinQuivers.V;
<A projective object in FinQuivers>
gap> Display( V );
( { 0 }, { } )
gap> A := FinQuivers.A;
<A projective object in FinQuivers>
gap> Display( A );
( { 0, 1 }, { 0 := [ 0, 1 ] } )
gap> T := TerminalObject( FinQuivers );
<An object in FinQuivers>
gap> Display( T );
( { 0 }, { 0 := [ 0, 0 ] } )
gap> T = V;
false
gap> G := CreateQuiver( 3, [ 0,1, 0,1, 1,2, 2,1, 2,2 ] );
<An object in FinQuivers>
gap> Display( G );
( { 0, 1, 2 },
{ 0 := [ 0, 1 ], 1 := [ 0, 1 ], 2 := [ 1, 2 ],
3 := [ 2, 1 ], 4 := [ 2, 2 ] } )
gap> global_G := HomStructure( T, G );
|1|
gap> Display( global_G );
{ 0 }
gap> discrete := DirectProduct( G, V );
<An object in FinQuivers>
gap> Display( discrete );
( { 0, 1, 2 }, { } )
gap> global_discrete := HomStructure( T, discrete );
|0|
gap> Display( global_discrete );
∅
gap> complete := Exponential( V, G );
<An object in FinQuivers>
gap> Display( complete );
( { 0, 1, 2 },
{ 0 := [ 0, 0 ], 1 := [ 1, 0 ], 2 := [ 2, 0 ], 3 := [ 0, 1 ], 4 := [ 1, 1 ],
5 := [ 2, 1 ], 6 := [ 0, 2 ], 7 := [ 1, 2 ], 8 := [ 2, 2 ] } )
gap> global_complete := HomStructure( T, complete );
|3|
gap> Display( global_complete );
{ 0, 1, 2 }
gap> GA := DirectProduct( G, A );
<An object in FinQuivers>
gap> Display( GA );
( { 0,..., 5 },
{ 0 := [ 0, 4 ], 1 := [ 0, 4 ], 2 := [ 1, 5 ],
3 := [ 2, 4 ], 4 := [ 2, 5 ] } )
gap> homAG := HomStructure( A, G );
|5|
gap> Display( homAG );
{ 0,..., 4 }
gap> arrows := Exponential( A, G );
<An object in FinQuivers>
gap> Display( arrows );
( { 0,..., 8 },
{ 0 := [ 0, 3 ], 1 := [ 0, 4 ], 2 := [ 0, 5 ], 3 := [ 3, 3 ], 4 := [ 3, 4 ],
5 := [ 3, 5 ], 6 := [ 6, 3 ], 7 := [ 6, 4 ], 8 := [ 6, 5 ], 9 := [ 0, 3 ],
10 := [ 0, 4 ], 11 := [ 0, 5 ], 12 := [ 3, 3 ], 13 := [ 3, 4 ],
14 := [ 3, 5 ], 15 := [ 6, 3 ], 16 := [ 6, 4 ], 17 := [ 6, 5 ],
18 := [ 1, 6 ], 19 := [ 1, 7 ], 20 := [ 1, 8 ], 21 := [ 4, 6 ],
22 := [ 4, 7 ], 23 := [ 4, 8 ], 24 := [ 7, 6 ], 25 := [ 7, 7 ],
26 := [ 7, 8 ], 27 := [ 2, 3 ], 28 := [ 2, 4 ], 29 := [ 2, 5 ],
30 := [ 5, 3 ], 31 := [ 5, 4 ], 32 := [ 5, 5 ], 33 := [ 8, 3 ],
34 := [ 8, 4 ], 35 := [ 8, 5 ], 36 := [ 2, 6 ], 37 := [ 2, 7 ],
38 := [ 2, 8 ], 39 := [ 5, 6 ], 40 := [ 5, 7 ], 41 := [ 5, 8 ],
42 := [ 8, 6 ], 43 := [ 8, 7 ], 44 := [ 8, 8 ] } )
gap> global_arrows := HomStructure( T, arrows );
|5|
gap> Display( global_arrows );
{ 0,..., 4 }
gap> prjG := ProjectionInFactorOfDirectProduct( [ G, V ], 1 );
<A morphism in FinQuivers>
gap> Display( prjG );
Image of <(V)>:
{ 0, 1, 2 } ⱶ[ 0, 1, 2 ]→ { 0, 1, 2 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0,..., 4 }
A morphism in FinQuivers
given by the above data
gap> IsEpimorphism( prjG );
false
gap> prj_discrete := ProjectionInFactorOfDirectProduct( [ discrete, V ], 1 );
<A morphism in FinQuivers>
gap> Display( prj_discrete );
Image of <(V)>:
{ 0, 1, 2 } ⱶ[ 0, 1, 2 ]→ { 0, 1, 2 }
Image of <(A)>:
∅ ⱶ[ ]→ ∅
A morphism in FinQuivers
given by the above data
gap> IsEpimorphism( prj_discrete );
true
gap> Display( Exponential( T, G ) );
( { 0, 1, 2 },
{ 0 := [ 0, 1 ], 1 := [ 0, 1 ], 2 := [ 1, 2 ],
3 := [ 2, 1 ], 4 := [ 2, 2 ] } )
gap> t := UniversalMorphismIntoTerminalObject( V );
<A morphism in FinQuivers>
gap> Display( t );
Image of <(V)>:
{ 0 } ⱶ[ 0 ]→ { 0 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
gap> embG := Exponential( t, G );
<A morphism in FinQuivers>
gap> Display( embG );
Image of <(V)>:
{ 0, 1, 2 } ⱶ[ 0, 1, 2 ]→ { 0, 1, 2 }
Image of <(A)>:
{ 0,..., 4 } ⱶ[ 3, 3, 7, 5, 8 ]→ { 0,..., 8 }
A morphism in FinQuivers
given by the above data
gap> IsEpimorphism( embG );
false
gap> emb_complete := Exponential( t, complete );
<A morphism in FinQuivers>
gap> Display( emb_complete );
Image of <(V)>:
{ 0, 1, 2 } ⱶ[ 0, 1, 2 ]→ { 0, 1, 2 }
Image of <(A)>:
{ 0,..., 8 } ⱶ[ 0, 1, 2, 3, 4, 5, 6, 7, 8 ]→ { 0,..., 8 }
A morphism in FinQuivers
given by the above data
gap> IsEpimorphism( emb_complete );
true
gap> s := FinQuivers.s;
<A monomorphism in FinQuivers>
gap> Display( s );
Image of <(V)>:
{ 0 } ⱶ[ 0 ]→ { 0, 1 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
gap> t := FinQuivers.t;
<A monomorphism in FinQuivers>
gap> Display( t );
Image of <(V)>:
{ 0 } ⱶ[ 1 ]→ { 0, 1 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
gap> omega := SubobjectClassifier( FinQuivers );
<An object in FinQuivers>
gap> Display( omega );
( { 0, 1 },
{ 0 := [ 0, 0 ], 1 := [ 1, 0 ], 2 := [ 0, 1 ],
3 := [ 1, 1 ], 4 := [ 1, 1 ] } )
gap> HomStructure( A, omega );
|5|
gap> subsA := ListOfSubobjects( A );
[ <A monomorphism in FinQuivers>,
<A monomorphism in FinQuivers>,
<A monomorphism in FinQuivers>,
<A monomorphism in FinQuivers>,
<A monomorphism in FinQuivers> ]
gap> Perform( subsA, Display );
Image of <(V)>:
∅ ⱶ[ ]→ { 0, 1 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
Image of <(V)>:
{ 0 } ⱶ[ 0 ]→ { 0, 1 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
Image of <(V)>:
{ 0 } ⱶ[ 1 ]→ { 0, 1 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
Image of <(V)>:
{ 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1 }
Image of <(A)>:
∅ ⱶ[ ]→ { 0 }
A morphism in FinQuivers
given by the above data
Image of <(V)>:
{ 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1 }
Image of <(A)>:
{ 0 } ⱶ[ 0 ]→ { 0 }
A morphism in FinQuivers
given by the above data