‣ PairOfIntAndList ( arg ) | ( attribute ) |
‣ PairOfLists ( arg ) | ( attribute ) |
‣ UnderlyingCategory ( UC ) | ( attribute ) |
Return the category C underlying the finite coproduct cocompletion category UC := FiniteStrictCoproductCompletion
( C ).
‣ EmbeddingOfUnderlyingCategory ( UC ) | ( attribute ) |
Returns: a CAP functor
The full embedding functor from the category C underlying the finite coproduct cocompletion UC into UC.
‣ ExtendFunctorToFiniteStrictCoproductCompletion ( UC ) | ( attribute ) |
Returns: a CAP functor
The full embedding functor from the category C underlying the finite coproduct cocompletion UC into UC.
‣ ExtendEmbeddingToFiniteStrictCoproductCompletion ( C ) | ( attribute ) |
Returns: a CAP functor
Extend (i.e., lift) the (full) embedding the category C into PreSheaves
( C ) to the full embedding of FiniteStrictCoproductCompletion
( C ) into PreSheaves
( C ).
‣ FiniteStrictCoproductCompletion ( cat ) | ( attribute ) |
Return the finite coproduct cocompletion of the category cat in which the cocartesian associators are given by identities.
gap> LoadPackage( "FiniteCocompletions" ); true gap> T := FiniteStrictCoproductCompletion( InitialCategory( ) ); FiniteStrictCoproductCompletion( InitialCategory( ) ) gap> Display( T ); A CAP category with name FiniteStrictCoproductCompletion( InitialCategory( ) ): 113 primitive operations were used to derive 669 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsFiniteCategory * IsEquippedWithHomomorphismStructure * IsLinearCategoryOverCommutativeRing * IsLeftClosedMonoidalCategory * IsLeftCoclosedMonoidalCategory * IsRigidSymmetricClosedMonoidalCategory * IsRigidSymmetricCoclosedMonoidalCategory * IsElementaryTopos * IsAbelianCategoryWithEnoughInjectives * IsAbelianCategoryWithEnoughProjectives * IsSymmetricClosedMonoidalLattice * IsSymmetricCoclosedMonoidalLattice * IsBooleanAlgebra and not yet algorithmically * IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms and furthermore mathematically * IsDiscreteCategory * IsFinitelyPresentedLinearCategory * IsLinearClosureOfACategory * IsLocallyOfFiniteInjectiveDimension * IsLocallyOfFiniteProjectiveDimension * IsStableProset * IsTerminalCategory * IsTotalOrderCategory gap> i := InitialObject( T ); <A zero object in FiniteStrictCoproductCompletion( InitialCategory( ) )> gap> t := TerminalObject( T ); <A zero object in FiniteStrictCoproductCompletion( InitialCategory( ) )> gap> z := ZeroObject( T ); <A zero object in FiniteStrictCoproductCompletion( InitialCategory( ) )> gap> Display( i ); [ 0, [ ] ] An object in FiniteStrictCoproductCompletion( InitialCategory( ) ) given by the above data gap> Display( t ); [ 0, [ ] ] An object in FiniteStrictCoproductCompletion( InitialCategory( ) ) given by the above data gap> Display( z ); [ 0, [ ] ] An object in FiniteStrictCoproductCompletion( InitialCategory( ) ) given by the above data gap> IsEqualForObjects( i, z ); true gap> IsIdenticalObj( i, z ); false gap> IsEqualForObjects( t, z ); true gap> IsIdenticalObj( t, z ); false gap> IsWellDefined( z ); true gap> id_z := IdentityMorphism( z ); <A zero, identity morphism in FiniteStrictCoproductCompletion( InitialCategory( ) )> gap> fn_z := ZeroObjectFunctorial( T ); <A zero, isomorphism in FiniteStrictCoproductCompletion( InitialCategory( ) )> gap> IsWellDefined( fn_z ); true gap> IsEqualForMorphisms( id_z, fn_z ); true gap> IsCongruentForMorphisms( id_z, fn_z ); true
gap> LoadPackage( "FunctorCategories", ">= 2024.09-09", false ); true gap> FinBouquets; FinBouquets gap> Chat := ModelingCategory( FinBouquets ); FiniteCocompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) ) gap> UC := FiniteStrictCoproductCompletion( > UnderlyingCategory( FinBouquets ) ); FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) ) gap> P := UC.P; <An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) )> gap> Display( P ); [ 1, [ <(P)> ] ] An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) ) given by the above data gap> L := UC.L; <An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) )> gap> Display( L ); [ 1, [ <(L)> ] ] An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) ) given by the above data gap> b := UC.b; <A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) )> gap> Display( b ); { 0 } ⱶ[ 0 ]→ { 0 } [ (P)-[(b)]->(L) ] A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) ) given by the above data gap> HomStructure( UC ); |1| gap> HomStructure( P, L ); |1| gap> homPL := MorphismsOfExternalHom( P, L ); [ <A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) )> ] gap> List( homPL, m -> HomStructure( P, L, HomStructure( m ) ) = m ); [ true ] gap> HomStructure( b, b ); |0| → |1| gap> HomStructure( b, L ); |1| → |1| gap> HomStructure( P, b ); |1| → |1| gap> M := Coproduct( P, L, P ); <An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) )> gap> N := Coproduct( L, P, L ); <An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "q(P,L)[b:P-≻L]" ) ) )> gap> HomStructure( M, N ); |18| gap> HomStructure( P, L ); |1| gap> homMN := MorphismsOfExternalHom( M, N );; gap> List( homMN, m -> HomStructure( M, N, HomStructure( m ) ) = m ); [ true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ]
‣ IsFiniteStrictCoproductCompletion ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of finite coproduct cocompletion categories.
‣ IsCellInFiniteStrictCoproductCompletion ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of cells in a finite coproduct cocompletion category.
‣ IsObjectInFiniteStrictCoproductCompletion ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of objects in a finite coproduct cocompletion category.
‣ IsMorphismInFiniteStrictCoproductCompletion ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of morphisms in a finite coproduct cocompletion category.
gap> LoadPackage( "FiniteCocompletions" ); true gap> LoadPackage( "Algebroids" ); true gap> LoadPackage( "LazyCategories", ">= 2023.01-02" ); true gap> Q := RightQuiver( "Q(a,b,c)[]" ); Q(a,b,c)[] gap> C := FreeCategory( Q ); FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) gap> UC := FiniteStrictCoproductCompletion( C ); FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) gap> a := UC.a; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> gap> b := UC.b; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> gap> c := UC.c; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> gap> ab_c := Coproduct( Coproduct( a, b ), c ); <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> gap> a_bc := Coproduct( a, Coproduct( b, c ) ); <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> gap> ab_c = a_bc; true gap> HomStructure( ab_c, a_bc ); |1| gap> hom := MorphismsOfExternalHom( ab_c, a_bc ); [ <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> ] gap> alpha := hom[1]; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) )> gap> Source( alpha ) = ab_c; true gap> IsOne( alpha ); true gap> IsWellDefined( alpha ); true gap> alpha = CocartesianAssociatorLeftToRight( a, b, c ); true gap> LUC := LazyCategory( UC ); LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) ) gap> Emb := EmbeddingFunctorOfUnderlyingCategory( LUC ); Embedding functor into lazy category gap> Display( Emb ); Embedding functor into lazy category: FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) ) gap> F := PreCompose( EmbeddingOfUnderlyingCategory( UC ), Emb ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category gap> Display( F ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category: FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) ) gap> G := ExtendFunctorToFiniteStrictCoproductCompletion( F ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ) gap> Display( G ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ): FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) ) gap> Galpha := G( alpha ); <A morphism in LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b,c)[]" ) ) ) )> gap> IsWellDefined( Galpha ); true
gap> LoadPackage( "FiniteCocompletions" ); true gap> LoadPackage( "Algebroids" ); true gap> LoadPackage( "LazyCategories", ">= 2023.01-02" ); true gap> Q := RightQuiver( "Q(a,b)[]" ); Q(a,b)[] gap> C := FreeCategory( Q ); FreeCategory( RightQuiver( "Q(a,b)[]" ) ) gap> SetName( C.a, "C.a" ); SetName( C.b, "C.b" ); gap> UC := FiniteStrictCoproductCompletion( C ); FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) gap> a := UC.a; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> b := UC.b; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> ab := Coproduct( a, b ); <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> Display( ab ); [ 2, [ C.a, C.b ] ] An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) given by the above data gap> ba := Coproduct( b, a ); <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> Display( ba ); [ 2, [ C.b, C.a ] ] An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) given by the above data gap> HomStructure( ab, ba ); |1| gap> hom := MorphismsOfExternalHom( ab, ba ); [ <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> ] gap> gamma := hom[1]; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> Source( gamma ) = ab; true gap> Target( gamma ) = ba; true gap> IsWellDefined( gamma ); true gap> Display( gamma ); { 0, 1 } ⱶ[ 1, 0 ]→ { 0, 1 } [ (a)-[(a)]->(a), (b)-[(b)]->(b) ] A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) given by the above data gap> LUC := LazyCategory( UC ); LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> Emb := EmbeddingFunctorOfUnderlyingCategory( LUC ); Embedding functor into lazy category gap> Display( Emb ); Embedding functor into lazy category: FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> F := PreCompose( EmbeddingOfUnderlyingCategory( UC ), Emb ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category gap> Display( F ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category: FreeCategory( RightQuiver( "Q(a,b)[]" ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> G := ExtendFunctorToFiniteStrictCoproductCompletion( F ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ) gap> Display( G ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ): FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> Ggamma := G( gamma ); <A morphism in LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) )> gap> IsWellDefined( Ggamma ); true
gap> LoadPackage( "FiniteCocompletions" ); true gap> LoadPackage( "Algebroids" ); true gap> LoadPackage( "LazyCategories", ">= 2023.01-02" ); true gap> Q := FinQuiver( "Q(a)[]" ); FinQuiver( "Q(a)[]" ) gap> C := PathCategory( Q ); PathCategory( FinQuiver( "Q(a)[]" ) ) gap> SetName( C.a, "C.a" ); gap> UC := FiniteStrictCoproductCompletion( C ); FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) gap> a := UC.a; <An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> gap> aa := Coproduct( a, a ); <An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> gap> Display( aa ); [ 2, [ C.a, C.a ] ] An object in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) given by the above data gap> a = aa; false gap> HomStructure( a, aa ); |2| gap> hom_a_aa := MorphismsOfExternalHom( a, aa ); [ <A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )>, <A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> ] gap> hom_a_aa[1] = InjectionOfCofactorOfCoproduct( [ a, a ], 1 ); true gap> hom_a_aa[2] = InjectionOfCofactorOfCoproduct( [ a, a ], 2 ); true gap> HomStructure( aa, a ); |1| gap> hom_aa_a := MorphismsOfExternalHom( aa, a ); [ <A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> ] gap> delta := hom_aa_a[1]; <A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> gap> Source( delta ) = aa; true gap> Target( delta ) = a; true gap> IsOne( ComponentOfMorphismFromCoproduct( delta, [ a, a ], 1 ) ); true gap> IsOne( ComponentOfMorphismFromCoproduct( delta, [ a, a ], 2 ) ); true gap> IsWellDefined( delta ); true gap> Display( delta ); { 0, 1 } ⱶ[ 0, 0 ]→ { 0 } [ id(a):C.a -≻ C.a, id(a):C.a -≻ C.a ] A morphism in FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) given by the above data gap> id_a := IdentityMorphism( C.a ); id(a):C.a -≻ C.a gap> delta = CocartesianCodiagonal( a, 2 ); true gap> CellAsEvaluatableString( delta, [ "C", "UC" ] ); "MorphismConstructor( UC, ObjectConstructor( UC, Pair( 2, [ ObjectConstructor( C, 1 ), ObjectConstructor( C, 1 ) ] ) ), Pair( [ 0, 0 ], [ IdentityMorphism( C, ObjectConstructor( C, 1 ) ), IdentityMorphism( C, ObjectConstructor( C, 1 ) ) ] ), ObjectConstructor( UC, Pair( 1, [ ObjectConstructor( C, 1 ) ] ) ) )" gap> LUC := LazyCategory( UC ); LazyCategory( FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> Emb := EmbeddingFunctorOfUnderlyingCategory( LUC ); Embedding functor into lazy category gap> Display( Emb ); Embedding functor into lazy category: FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> F := PreCompose( EmbeddingOfUnderlyingCategory( UC ), Emb ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category gap> Display( F ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category: PathCategory( FinQuiver( "Q(a)[]" ) ) | V LazyCategory( FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> G := ExtendFunctorToFiniteStrictCoproductCompletion( F ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ) gap> Display( G ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ): FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> Gdelta := G( delta ); <A morphism in LazyCategory( FiniteStrictCoproductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) )> gap> IsWellDefined( Gdelta ); true
gap> LoadPackage( "FiniteCocompletions" ); true gap> T := TerminalCategoryWithMultipleObjects( ); TerminalCategoryWithMultipleObjects( ) gap> sFinSets := FiniteStrictCoproductCompletion( T ); FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) gap> Display( sFinSets ); A CAP category with name FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ): 35 primitive operations were used to derive 165 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsEquippedWithHomomorphismStructure * IsFiniteCompleteCategory * IsDistributiveCategory and furthermore mathematically * IsStrictCocartesianCategory gap> t := TerminalObject( sFinSets ); <An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> IsTerminal( t ); true gap> IsInitial( t ); false gap> Display( t ); [ 1, [ TerminalObject ] ] An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> i := InitialObject( sFinSets ); <An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> IsTerminal( i ); false gap> IsInitial( i ); true gap> Display( i ); [ 0, [ ] ] An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> UniversalMorphismFromInitialObject(t) = UniversalMorphismIntoTerminalObject(i); true gap> A := [ 3, [ "A0" / T, "A1" / T, "A2" / T ] ] / sFinSets; <An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> Display( A ); [ 3, [ A0, A1, A2 ] ] An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> B := [ 2, [ "B0" / T, "B1" / T ] ] / sFinSets; <An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> Display( B ); [ 2, [ B0, B1 ] ] An object in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> piA := ProjectionInFactorOfDirectProduct( [ A, B ], 1 ); <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> Display( piA ); { 0,..., 5 } ⱶ[ 0, 1, 2, 0, 1, 2 ]→ { 0, 1, 2 } [ ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct ] A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> piB := ProjectionInFactorOfDirectProduct( [ A, B ], 2 ); <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> Display( piB ); { 0,..., 5 } ⱶ[ 0, 0, 0, 1, 1, 1 ]→ { 0, 1 } [ ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct, ProjectionInFactorOfDirectProductWithGivenDirectProduct ] A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> IsOne( UniversalMorphismIntoDirectProduct( [ piA, piB ] ) ); true gap> I := HomStructure( sFinSets ); <An object in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )> gap> Display( I ); [ 1, [ An object in TerminalCategoryWithSingleObject( ) ] ] An object in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) ) given by the above data gap> U := ObjectDatum( I )[2][1]; <A zero object in TerminalCategoryWithSingleObject( )> gap> HomAB := HomStructure( A, B ); <An object in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )> gap> L := ObjectDatum( HomAB ); [ 8, [ <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )>, <A zero object in TerminalCategoryWithSingleObject( )> ] ] gap> homAB := List( MorphismsOfExternalHom( A, B ), HomStructure ); [ <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )>, <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )> ] gap> List( homAB, IsWellDefined ); [ true, true, true, true, true, true, true, true ] gap> List( homAB, m -> HomStructure( HomStructure( A, B, m ) ) ) = homAB; true gap> alpha := HomStructure( A, B, homAB[6] ); <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> Display( alpha ); { 0, 1, 2 } ⱶ[ 1, 0, 1 ]→ { 0, 1 } [ InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism ] A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> gamma := HomStructure( A, B, homAB[2] ); <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) )> gap> Display( gamma ); { 0, 1, 2 } ⱶ[ 1, 0, 0 ]→ { 0, 1 } [ InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism, InterpretMorphismFromDistinguishedObjectToHomomorphismStructureAsMorphism ] A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithMultipleObjects( ) ) given by the above data gap> hom_alpha_gamma := HomStructure( alpha, gamma ); <A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) )> gap> Display( hom_alpha_gamma ); { 0,..., 8 } ⱶ[ 7, 5, 5, 2, 0, 0, 2, 0, 0 ]→ { 0,..., 7 } [ A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ), A morphism in TerminalCategoryWithSingleObject( ) ] A morphism in FiniteStrictCoproductCompletion( TerminalCategoryWithSingleObject( ) ) given by the above data gap> IsWellDefined( hom_alpha_gamma ); true
gap> LoadPackage( "FiniteCocompletions" ); true gap> LoadPackage( "Algebroids" ); true gap> LoadPackage( "LazyCategories", ">= 2023.01-02" ); true gap> Q := RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ); Q(A,B)[f:A->B,g:A->B] gap> C := FreeCategory( Q ); FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) gap> SetName( C.A, "C.A" ); SetName( C.B, "C.B" ); gap> UC := FiniteStrictCoproductCompletion( C ); FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) gap> A := UC.A; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> B := UC.B; <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> Display( A ); [ 1, [ C.A ] ] An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) given by the above data gap> Display( B ); [ 1, [ C.B ] ] An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) given by the above data gap> f := UC.f; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> g := UC.g; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> MorphismDatum( f ); [ [ 0 ], [ (A)-[(f)]->(B) ] ] gap> MorphismDatum( g ); [ [ 0 ], [ (A)-[(g)]->(B) ] ] gap> IsSplitEpimorphism( f ); false gap> IsSplitEpimorphism( g ); false gap> AuB := Coproduct( A, B ); <An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> Display( AuB ); [ 2, [ C.A, C.B ] ] An object in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) given by the above data gap> HomStructure( AuB, B ); |2| gap> hom := MorphismsOfExternalHom( AuB, B ); [ <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )>, <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> ] gap> ff := hom[1]; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> gg := hom[2]; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> ff = gg; false gap> IsSplitEpimorphism( ff ); true gap> IsSplitEpimorphism( gg ); true gap> MorphismDatum( ff ); [ [ 0, 0 ], [ (A)-[(f)]->(B), (B)-[(B)]->(B) ] ] gap> MorphismDatum( gg ); [ [ 0, 0 ], [ (A)-[(g)]->(B), (B)-[(B)]->(B) ] ] gap> HomStructure( B, AuB ); |1| gap> ii := MorphismsOfExternalHom( B, AuB )[1]; <A morphism in FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) )> gap> ii = InjectionOfCofactorOfCoproduct( [ A, B ], 2 ); true gap> f = ComponentOfMorphismFromCoproduct( ff, [ A, B ], 1 ); true gap> IsOne( ComponentOfMorphismFromCoproduct( ff, [ A, B ], 2 ) ); true gap> g = ComponentOfMorphismFromCoproduct( gg, [ A, B ], 1 ); true gap> IsOne( ComponentOfMorphismFromCoproduct( gg, [ A, B ], 2 ) ); true gap> LUC := LazyCategory( UC ); LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) ) gap> Emb := EmbeddingFunctorOfUnderlyingCategory( LUC ); Embedding functor into lazy category gap> Display( Emb ); Embedding functor into lazy category: FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) ) gap> F := PreCompose( EmbeddingOfUnderlyingCategory( UC ), Emb ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category gap> Display( F ); Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category: FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) ) gap> G := ExtendFunctorToFiniteStrictCoproductCompletion( F ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ) gap> Display( G ); Extension to FiniteStrictCoproductCompletion( Source( Precomposition of Embedding functor into a finite strict coproduct cocompletion category and Embedding functor into lazy category ) ): FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) | V LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) ) gap> Gff := G( ff ); <A morphism in LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) )> gap> IsWellDefined( Gff ); true gap> Ggg := G( gg ); <A morphism in LazyCategory( FiniteStrictCoproductCompletion( FreeCategory( RightQuiver( "Q(A,B)[f:A->B,g:A->B]" ) ) ) )> gap> IsWellDefined( Ggg ); true gap> MorphismDatum( EvaluatedCell( Gff ) ); [ [ 0, 0 ], [ (A)-[(f)]->(B), (B)-[(B)]->(B) ] ] gap> MorphismDatum( EvaluatedCell( Ggg ) ); [ [ 0, 0 ], [ (A)-[(g)]->(B), (B)-[(B)]->(B) ] ]
generated by GAPDoc2HTML