Construct the category of quivers.
gap> LoadPackage( "FunctorCategories" );
true
gap> FinReflexiveQuivers;
CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
gap> V := FinReflexiveQuivers.V;
<A projective object in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( V );
( { 0 }, { 0 := [ 0 ] } )
gap> A := FinReflexiveQuivers.A;
<A projective object in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( A );
( { 0, 1 }, { 0 := [ 0, 1 ], 1 := [ 0 ], 2 := [ 1 ] } )
gap> T := TerminalObject( FinReflexiveQuivers );
<An object in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( T );
( { 0 }, { 0 := [ 0 ] } )
gap> T = V;
true
gap> G := CreateReflexiveQuiver( 2,
> [ 1, 4 ],
> [ 0,1, 0,0, 0,0, 1,0, 1,1 ] );
<An object in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> IsWellDefined( G );
true
gap> Display( G );
( { 0, 1 },
{ 0 := [ 0, 1 ], 1 := [ 0 ], 2 := [ 0, 0 ], 3 := [ 1, 0 ], 4 := [ 1 ] } )
gap> global_G := HomStructure( T, G );
|2|
gap> Display( global_G );
{ 0, 1 }
gap> DirectProduct( G, V ) = G;
true
gap> iso := CartesianEvaluationMorphism( T, G );
<A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> IsIsomorphism( iso );
true
gap> Display( iso );
Image of <(C0)>:
{ 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1 }
Image of <(C1)>:
{ 0,..., 4 } ⱶ[ 1, 2, 3, 0, 4 ]→ { 0,..., 4 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
gap> s := FinReflexiveQuivers.s;
<A split monomorphism in
CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( s );
Image of <(C0)>:
{ 0 } ⱶ[ 0 ]→ { 0, 1 }
Image of <(C1)>:
{ 0 } ⱶ[ 1 ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
gap> t := FinReflexiveQuivers.t;
<A split monomorphism in
CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( t );
Image of <(C0)>:
{ 0 } ⱶ[ 1 ]→ { 0, 1 }
Image of <(C1)>:
{ 0 } ⱶ[ 2 ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
gap> l := FinReflexiveQuivers.l;
<A split epimorphism in
CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( l );
Image of <(C0)>:
{ 0, 1 } ⱶ[ 0, 0 ]→ { 0 }
Image of <(C1)>:
{ 0, 1, 2 } ⱶ[ 0, 0, 0 ]→ { 0 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
gap> omega := SubobjectClassifier( FinReflexiveQuivers );
<An object in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>
gap> Display( omega );
( { 0, 1 },
{ 0 := [ 0 ], 1 := [ 1, 0 ], 2 := [ 0, 1 ],
3 := [ 1, 1 ], 4 := [ 1 ] } )
gap> HomStructure( A, omega );
|5|
gap> subsA := ListOfSubobjects( A );
[ <A monomorphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>,
<A monomorphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>,
<A monomorphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>,
<A monomorphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )>,
<A monomorphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )> ]
gap> Perform( subsA, Display );
Image of <(C0)>:
∅ ⱶ[ ]→ { 0, 1 }
Image of <(C1)>:
∅ ⱶ[ ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
Image of <(C0)>:
{ 0 } ⱶ[ 0 ]→ { 0, 1 }
Image of <(C1)>:
{ 0 } ⱶ[ 1 ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
Image of <(C0)>:
{ 0 } ⱶ[ 1 ]→ { 0, 1 }
Image of <(C1)>:
{ 0 } ⱶ[ 2 ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
Image of <(C0)>:
{ 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1 }
Image of <(C1)>:
{ 0, 1 } ⱶ[ 1, 2 ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data
Image of <(C0)>:
{ 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1 }
Image of <(C1)>:
{ 0, 1, 2 } ⱶ[ 0, 1, 2 ]→ { 0, 1, 2 }
A morphism in CategoryOfReflexiveQuiversEnrichedOver( SkeletalFinSets )
given by the above data