GAP (MonoidalCategories) - Chapter 4: The terminal category with multiple objects

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

[MathJax on]

4 The terminal category with multiple objects
4.1 Constructors
4.1-1 TerminalCategory
4.1-2 TerminalCategoryWithMultipleObjects
4.1-3 /
4.2 GAP Categories
4.2-1 IsTerminalCategoryWithMultipleObjects
4.2-2 IsCellInTerminalCategoryWithMultipleObjects
4.2-3 IsObjectInTerminalCategoryWithMultipleObjects
4.2-4 IsMorphismInTerminalCategoryWithMultipleObjects

### 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