Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

3 Finite categories from nerve data
 3.1 Attributes
 3.2 Constructors
 3.3 GAP categories

3 Finite categories from nerve data

3.1 Attributes

3.1-1 NerveData
‣ NerveData( C )( attribute )

Returns: a pair consisting of a triple and an 8-tuple

The nerve data used to create the category C. It might differ from the normalized output of NerveTruncatedInDegree2Data( C ).

3.1-2 Size
‣ Size( C )( attribute )

Returns: a nonnegative integer

The number of morphisms in the category C created from nerve data.

3.1-3 OppositeCategoryFromNerveData
‣ OppositeCategoryFromNerveData( C )( attribute )

Returns: a CAP category

The opposite category of the category C defined by nerve data.

3.2 Constructors

3.2-1 CategoryFromNerveData
‣ CategoryFromNerveData( input_record )( attribute )

Returns: a CAP category

Construct an enriched finite category out of the input_record consisting of values to the keys:

gap> LoadPackage( "Algebroids" );
true
gap> Delta1 := SimplicialCategoryTruncatedInDegree( 1 );
FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
/ [ s*id = C0, t*id = C0 ]
gap> Size( Delta1 );
7
gap> C := CategoryFromNerveData( Delta1 );
FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
/ [ s*id = C0, t*id = C0 ]
gap> Size( C );
7
gap> NerveTruncatedInDegree2Data( C ) = NerveTruncatedInDegree2Data( Delta1 );
true
gap> IndicesOfGeneratingMorphisms( C );
[ 1, 2, 3 ]
gap> SetOfGeneratingMorphisms( C );
[ (C1)-[(id)]->(C0), (C0)-[(s)]->(C1), (C0)-[(t)]->(C1) ]
gap> Display( C );
A CAP category with name
FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
/ [ s*id = C0, t*id = C0 ]:

19 primitive operations were used to derive 57 operations for this category
which algorithmically
* IsCategoryWithDecidableColifts
* IsCategoryWithDecidableLifts
* IsFiniteCategory
* IsEquippedWithHomomorphismStructure
gap> C0 := CreateObject( C, 0 );
<(C0)>
gap> IsWellDefined( C0 );
true
gap> C1 := 1 / C;
<(C1)>
gap> IsWellDefined( C1 );
true
gap> IsWellDefined( 2 / C );
false
gap> idC0 := CreateMorphism( C0, 0, C0 );
(C0)-[(C0)]->(C0)
gap> CreateMorphism( C, 0 ) = idC0;
true
gap> IsOne( idC0 );
true
gap> id := CreateMorphism( C, 1 );
(C1)-[(id)]->(C0)
gap> s := CreateMorphism( C, 2 );
(C0)-[(s)]->(C1)
gap> t := CreateMorphism( C, 3 );
(C0)-[(t)]->(C1)
gap> idC1 := CreateMorphism( C, 4 );
(C1)-[(C1)]->(C1)
gap> IsOne( idC1 );
true
gap> sigma := CreateMorphism( C, 5 );
(C1)-[(id*s)]->(C1)
gap> IsEndomorphism( sigma );
true
gap> IsOne( sigma );
false
gap> tau := CreateMorphism( C, 6 );
(C1)-[(id*t)]->(C1)
gap> IsEndomorphism( tau );
true
gap> IsOne( tau );
false
gap> IsWellDefined( CreateMorphism( C1, 7, C1 ) );
false
gap> PreCompose( s, id ) = idC0;
true
gap> PreCompose( t, id ) = idC0;
true
gap> PreCompose( id, s ) = sigma;
true
gap> PreCompose( id, t ) = tau;
true
gap> HomStructure( C0, C0 );
|1|
gap> HomStructure( C1, C1 );
|3|
gap> HomStructure( C0, C1 );
|2|
gap> HomStructure( C1, C0 );
|1|
gap> Display( HomStructure( s ) );
{ 0 } ⱶ[ 0 ]→ { 0, 1 }
gap> Display( HomStructure( t ) );
{ 0 } ⱶ[ 1 ]→ { 0, 1 }
gap> HomStructure( Source( s ), Target( s ), HomStructure( s ) ) = s;
true
gap> HomStructure( Source( t ), Target( t ), HomStructure( t ) ) = t;
true
gap> Display( HomStructure( s, t ) );
{ 0 } ⱶ[ 1 ]→ { 0, 1 }
gap> Display( HomStructure( t, s ) );
{ 0 } ⱶ[ 0 ]→ { 0, 1 }
gap> Display( HomStructure( sigma, tau ) );
{ 0, 1, 2 } ⱶ[ 2, 2, 2 ]→ { 0, 1, 2 }
gap> Display( HomStructure(
>         PreCompose( Delta1.id, Delta1.s ),
>         PreCompose( Delta1.id, Delta1.t ) ) );
{ 0, 1, 2 } ⱶ[ 2, 2, 2 ]→ { 0, 1, 2 }
gap> Display( HomStructure( tau, sigma ) );
{ 0, 1, 2 } ⱶ[ 1, 1, 1 ]→ { 0, 1, 2 }
gap> Display( HomStructure(
>         PreCompose( Delta1.id, Delta1.t ),
>         PreCompose( Delta1.id, Delta1.s ) ) );
{ 0, 1, 2 } ⱶ[ 1, 1, 1 ]→ { 0, 1, 2 }
gap> Display( HomStructure( tau, idC1 ) );
{ 0, 1, 2 } ⱶ[ 2, 1, 2 ]→ { 0, 1, 2 }
gap> Display( HomStructure( idC1, idC1 ) );
{ 0, 1, 2 } ⱶ[ 0, 1, 2 ]→ { 0, 1, 2 }
gap> C_op := OppositeCategoryFromNerveData( C );
Opposite(
FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
/ [ s*id = C0, t*id = C0 ] )
gap> NerveData( C_op ) = NerveTruncatedInDegree2Data( C_op );
true
gap> IsIdenticalObj( OppositeCategoryFromNerveData( C_op ), C );
true
gap> IndicesOfGeneratingMorphisms( C_op );
[ 3, 1, 2 ]
gap> SetOfGeneratingMorphisms( C_op );
[ (C0)-[(id)]->(C1), (C1)-[(s)]->(C0), (C1)-[(t)]->(C0) ]

3.2-2 CategoryFromNerveData
‣ CategoryFromNerveData( C )( attribute )

3.2-3 CategoryFromNerveData
‣ CategoryFromNerveData( C )( attribute )

3.2-4 CreateObject
‣ CreateObject( C, o )( operation )

Returns: a CAP category

Construct the o-th object in the category C created from nerve data.

3.3 GAP categories

3.3-1 IsCategoryFromNerveData
‣ IsCategoryFromNerveData( arg )( filter )

Returns: true or false

The GAP category of categories from nerve data.

3.3-2 IsCellInCategoryFromNerveData
‣ IsCellInCategoryFromNerveData( arg )( filter )

Returns: true or false

The GAP category of cells in a category from nerve data.

3.3-3 IsObjectInCategoryFromNerveData
‣ IsObjectInCategoryFromNerveData( arg )( filter )

Returns: true or false

The GAP category of objects in a category from nerve data.

3.3-4 IsMorphismInCategoryFromNerveData
‣ IsMorphismInCategoryFromNerveData( arg )( filter )

Returns: true or false

The GAP category of morphisms in a category from nerve data.

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 Ind

generated by GAPDoc2HTML