Goto Chapter: Top 1 2 3 4 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

4 The terminal category with multiple objects
 4.1 Constructors
 4.2 GAP Categories

4 The terminal category with multiple objects

This is an example of a category which is created using CategoryConstructor out of no input.

This category "lies" in all doctrines and can hence be used (in conjunction with LazyCategory) in order to check the type-correctness of the various derived methods provided by CAP or any CAP-based package.

4.1 Constructors

4.1-1 TerminalCategory
‣ TerminalCategory( )( function )

Construct a terminal category possibly with multiple objects.

gap> T := TerminalCategory( );
TerminalCategory( )
gap> InfoOfInstalledOperationsOfCategory( T );
68 primitive operations were used to derive 317 operations for this category
which constructively
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRing
* IsAbelianCategoryWithEnoughInjectives
* IsAbelianCategoryWithEnoughProjectives
* IsRigidSymmetricClosedMonoidalCategory
* IsRigidSymmetricCoclosedMonoidalCategory
gap> i := InitialObject( T );
<A zero object in TerminalCategory( )>
gap> t := TerminalObject( T );
<A zero object in TerminalCategory( )>
gap> z := ZeroObject( T );
<A zero object in TerminalCategory( )>
gap> Display( i );
A zero object in TerminalCategory( ).
gap> Display( t );
A zero object in TerminalCategory( ).
gap> Display( z );
A zero object in TerminalCategory( ).
gap> IsIdenticalObj( i, z );
true
gap> IsIdenticalObj( t, z );
true
gap> IsWellDefined( z );
true
gap> id_z := IdentityMorphism( z );
<A zero, identity morphism in TerminalCategory( )>
gap> fn_z := ZeroObjectFunctorial( T );
<A zero, isomorphism in TerminalCategory( )>
gap> IsWellDefined( fn_z );
true
gap> IsEqualForMorphisms( id_z, fn_z );
true
gap> IsCongruentForMorphisms( id_z, fn_z );
true

4.1-2 TerminalCategoryWithMultipleObjects
‣ TerminalCategoryWithMultipleObjects( )( function )

Construct a terminal category with multiple objects.

gap> T := TerminalCategoryWithMultipleObjects( );
TerminalCategoryWithMultipleObjects( )
gap> InfoOfInstalledOperationsOfCategory( T );
68 primitive operations were used to derive 317 operations for this category
which constructively
* IsEquippedWithHomomorphismStructure
* IsLinearCategoryOverCommutativeRing
* IsAbelianCategoryWithEnoughInjectives
* IsAbelianCategoryWithEnoughProjectives
* IsRigidSymmetricClosedMonoidalCategory
* IsRigidSymmetricCoclosedMonoidalCategory
gap> i := InitialObject( T );
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> t := TerminalObject( T );
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> z := ZeroObject( T );
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> Display( i );
ZeroObject
gap> Display( t );
ZeroObject
gap> Display( z );
ZeroObject
gap> IsIdenticalObj( i, z );
true
gap> IsIdenticalObj( t, z );
true
gap> id_z := IdentityMorphism( z );
<A zero, identity morphism in TerminalCategoryWithMultipleObjects( )>
gap> fn_z := ZeroObjectFunctorial( T );
<A zero, isomorphism in TerminalCategoryWithMultipleObjects( )>
gap> IsEqualForMorphisms( id_z, fn_z );
false
gap> IsCongruentForMorphisms( id_z, fn_z );
true
gap> a := "a" / T;
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> Display( a );
a
gap> IsWellDefined( a );
true
gap> aa := ObjectConstructor( T, "a" );
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> Display( aa );
a
gap> a = aa;
true
gap> b := "b" / T;
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> Display( b );
b
gap> a = b;
false
gap> t := TensorProduct( a, b );
<A zero object in TerminalCategoryWithMultipleObjects( )>
gap> Display( t );
TensorProductOnObjects
gap> a = t;
false
gap> TensorProduct( a, a ) = t;
true
gap> m := MorphismConstructor( a, "m", b );
<A zero, isomorphism in TerminalCategoryWithMultipleObjects( )>
gap> Display( m );
a
|
| m
v
b
gap> IsWellDefined( m );
true
gap> n := MorphismConstructor( a, "n", b );
<A zero, isomorphism in TerminalCategoryWithMultipleObjects( )>
gap> Display( n );
a
|
| n
v
b
gap> IsEqualForMorphisms( m, n );
false
gap> IsCongruentForMorphisms( m, n );
true
gap> m = n;
true
gap> id := IdentityMorphism( a );
<A zero, identity morphism in TerminalCategoryWithMultipleObjects( )>
gap> Display( id );
a
|
| IdentityMorphism
v
a
gap> m = id;
false
gap> id = MorphismConstructor( a, "xyz", a );
true
gap> z := ZeroMorphism( a, a );
<A zero, isomorphism in TerminalCategoryWithMultipleObjects( )>
gap> Display( z );
a
|
| ZeroMorphism
v
a
gap> id = z;
true

4.1-3 /
‣ /( T, str )( operation )

Create an object a in the terminal category T with multiple objects with String(str) = a.

4.2 GAP Categories

4.2-1 IsTerminalCategoryWithMultipleObjects
‣ IsTerminalCategoryWithMultipleObjects( T )( filter )

Returns: true or false

The GAP type of a terminal category with multiple objects.

4.2-2 IsCellInTerminalCategoryWithMultipleObjects
‣ IsCellInTerminalCategoryWithMultipleObjects( T )( filter )

Returns: true or false

The GAP type of a cell in a terminal category with multiple objects.

4.2-3 IsObjectInTerminalCategoryWithMultipleObjects
‣ IsObjectInTerminalCategoryWithMultipleObjects( T )( filter )

Returns: true or false

The GAP type of an object in a terminal category with multiple objects.

4.2-4 IsMorphismInTerminalCategoryWithMultipleObjects
‣ IsMorphismInTerminalCategoryWithMultipleObjects( T )( filter )

Returns: true or false

The GAP type of a morphism in a terminal category with multiple objects.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 Ind

generated by GAPDoc2HTML