‣ PairOfIntAndList( arg ) | ( attribute ) |
‣ PairOfLists( arg ) | ( attribute ) |
‣ UnderlyingCategory( UC ) | ( attribute ) |
Return the category C underlying the finite product completion category UC := FiniteStrictCoproductCompletionOfObjectFiniteCategory( C )).
‣ NumberOfObjectsOfUnderlyingCategory( UC ) | ( attribute ) |
Return the number of objects in the category C underlying the finite product completion category UC := FiniteStrictCoproductCompletionOfObjectFiniteCategory( C )).
‣ EmbeddingOfUnderlyingCategory( PC ) | ( attribute ) |
Returns: a CAP functor
The full embedding functor from the category C underlying the finite product completion PC into PC.
‣ ExtendFunctorToFiniteStrictCoproductCompletionOfObjectFiniteCategory( PC ) | ( attribute ) |
Returns: a CAP functor
The full embedding functor from the category C underlying the finite product completion UC into UC.
‣ PairOfIntAndList( arg ) | ( attribute ) |
‣ PairOfLists( arg ) | ( attribute ) |
‣ UnderlyingCategory( UC ) | ( attribute ) |
Return the category C underlying the finite product completion category UC := FiniteStrictProductCompletion( C )).
‣ EmbeddingOfUnderlyingCategory( PC ) | ( attribute ) |
Returns: a CAP functor
The full embedding functor from the category C underlying the finite product completion PC into PC.
‣ ExtendFunctorToFiniteStrictProductCompletion( PC ) | ( attribute ) |
Returns: a CAP functor
The full embedding functor from the category C underlying the finite product completion UC into UC.
‣ FiniteStrictCoproductCompletionOfObjectFiniteCategory( cat ) | ( attribute ) |
Return the finite product completion of the category cat in which the cartesian associators are given by identities.
gap> LoadPackage( "FiniteCocompletions", false ); true gap> q := FinQuiver( "q(a,b,c)[m:a->b,n:b->c]" ); FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) gap> P := PathCategory( q : skeletal := true ); PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) gap> mUP := FiniteStrictCoproductCompletionOfObjectFiniteCategory( P ); FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) ) gap> a := mUP.a; <An object in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> b := mUP.b; <An object in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> c := mUP.c; <An object in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> m := mUP.m; <A morphism in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> n := mUP.n; <A morphism in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> PreCompose( m, n ); <A morphism in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> x := [ 3, [ 1, 2, 0 ] ] / mUP; <An object in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> y := [ 6, [ 3, 2, 1 ] ] / mUP; <An object in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> ix := InjectionOfCofactorOfCoproduct( [ x, y ], 1 ); <A morphism in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> iy := InjectionOfCofactorOfCoproduct( [ x, y ], 2 ); <A morphism in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> u := UniversalMorphismFromCoproduct( [ ix, iy ] ); <A morphism in FiniteStrictCoproductCompletionOfObjectFiniteCategory( PathCategory( FinQuiver( "q(a,b,c)[m:a→b,n:b→c]" ) ) )> gap> IsOne( u ); true gap> IsWellDefined( u ); true
gap> LoadPackage( "FiniteCocompletions", false ); true gap> q := FinQuiver( "q(M,A,B,J)[a:M->A,b:M->B,i:A->J,j:B->J]" ); FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) gap> D := PathCategory( q ); PathCategory( FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) gap> L := PosetOfCategory( D ); PosetOfCategory( PathCategory( \ FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) gap> L.ai = L.bj; true gap> Perform( SetOfObjects( L ), Display ); (M) An object in the poset given by the above data (A) An object in the poset given by the above data (B) An object in the poset given by the above data (J) An object in the poset given by the above data gap> Ltilde := FiniteStrictCoproductCompletionOfObjectFiniteCategory( L ); FiniteStrictCoproductCompletionOfObjectFiniteCategory( PosetOfCategory( \ PathCategory( FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) ) gap> Length( SetOfObjects( Ltilde ) ); 16 gap> Lhat := PosetOfCategory( Ltilde ); PosetOfCategory( FiniteStrictCoproductCompletionOfObjectFiniteCategory( \ PosetOfCategory( PathCategory( \ FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) ) ) gap> Display( Lhat ); A CAP category with name PosetOfCategory( \ FiniteStrictCoproductCompletionOfObjectFiniteCategory( PosetOfCategory( \ PathCategory( FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) ) ): 10 primitive operations were used to derive 98 operations for this category which not yet algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsFiniteCategory * IsEquippedWithHomomorphismStructure * IsJoinSemiLattice
‣ FiniteStrictProductCompletion( cat ) | ( attribute ) |
Return the finite product completion of the category cat in which the cartesian associators are given by identities.
gap> LoadPackage( "FiniteCocompletions", false ); true gap> q := FinQuiver( "q(M,A,B,J)[a:M->A,b:M->B,i:A->J,j:B->J]" ); FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) gap> D := PathCategory( q ); PathCategory( FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) gap> L := PosetOfCategory( D ); PosetOfCategory( PathCategory( \ FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) gap> L.ai = L.bj; true gap> Perform( SetOfObjects( L ), Display ); (M) An object in the poset given by the above data (A) An object in the poset given by the above data (B) An object in the poset given by the above data (J) An object in the poset given by the above data gap> Ltilde := FiniteStrictProductCompletion( L ); FiniteStrictProductCompletion( PosetOfCategory( PathCategory( \ FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) ) gap> Length( SetOfObjects( Ltilde ) ); 16 gap> Lhat := PosetOfCategory( Ltilde ); PosetOfCategory( FiniteStrictProductCompletion( PosetOfCategory( \ PathCategory( FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) ) ) gap> Lhat_objs := SetOfObjects( Lhat );; Length( Lhat_objs ); 6 gap> M := Lhat.M; An object in the poset given by: \ <An object in FiniteStrictProductCompletion( PosetOfCategory( \ PathCategory( FinQuiver( "q(M,A,B,J)[a:M→A,b:M→B,i:A→J,j:B→J]" ) ) ) )> gap> A := Lhat.A;; gap> B := Lhat.B;; gap> J := Lhat.J;; gap> P := DirectProduct( Lhat.A, Lhat.B );; gap> T := TerminalObject( Lhat );; gap> P = M; false gap> T = J; false gap> Lhat_objs = [ T, M, A, B, J, P ]; true
gap> LoadPackage( "FiniteCocompletions" ); true gap> T := FiniteStrictProductCompletion( InitialCategory( ) ); FiniteStrictProductCompletion( InitialCategory( ) ) gap> Display( T ); A CAP category with name FiniteStrictProductCompletion( InitialCategory( ) ): 131 primitive operations were used to derive 627 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsFiniteCategory * IsEquippedWithHomomorphismStructure * IsLinearCategoryOverCommutativeRing * IsLeftClosedMonoidalCategory * IsLeftCoclosedMonoidalCategory * IsRigidSymmetricClosedMonoidalCategory * IsRigidSymmetricCoclosedMonoidalCategory * IsAbelianCategoryWithEnoughInjectives * IsAbelianCategoryWithEnoughProjectives * IsAdditiveMonoidalCategory * IsSymmetricClosedMonoidalLattice * IsSymmetricCoclosedMonoidalLattice * IsBooleanAlgebra and not yet algorithmically * IsLinearCategoryOverCommutativeRingWithFinitelyGeneratedFreeExternalHoms and furthermore mathematically * IsFinitelyPresentedLinearCategory * IsLinearClosureOfACategory * IsLocallyOfFiniteInjectiveDimension * IsLocallyOfFiniteProjectiveDimension * IsSymmetricMonoidalCategoryStructureGivenByCoproduct * IsSymmetricMonoidalCategoryStructureGivenByDirectProduct * IsTerminalCategory * IsTotalOrderCategory gap> i := InitialObject( T ); <An object in FiniteStrictProductCompletion( InitialCategory( ) )> gap> t := TerminalObject( T ); <An object in FiniteStrictProductCompletion( InitialCategory( ) )> gap> z := ZeroObject( T ); <A zero object in FiniteStrictProductCompletion( InitialCategory( ) )> gap> Display( i ); [ 0, [ ] ] An object in FiniteStrictProductCompletion( InitialCategory( ) ) given by the above data gap> Display( t ); [ 0, [ ] ] An object in FiniteStrictProductCompletion( InitialCategory( ) ) given by the above data gap> Display( z ); [ 0, [ ] ] An object in FiniteStrictProductCompletion( 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 FiniteStrictProductCompletion( InitialCategory( ) )> gap> fn_z := ZeroObjectFunctorial( T ); <A zero, isomorphism in FiniteStrictProductCompletion( InitialCategory( ) )> gap> IsWellDefined( fn_z ); true gap> IsEqualForMorphisms( id_z, fn_z ); true gap> IsCongruentForMorphisms( id_z, fn_z ); true
‣ IsFiniteStrictCoproductCompletionOfObjectFiniteCategory( arg ) | ( filter ) |
Returns: true or false
The GAP category of finite product completion categories.
‣ IsCellInFiniteStrictCoproductCompletionOfObjectFiniteCategory( arg ) | ( filter ) |
Returns: true or false
The GAP category of cells in a finite product completion category.
‣ IsObjectInFiniteStrictCoproductCompletionOfObjectFiniteCategory( arg ) | ( filter ) |
Returns: true or false
The GAP category of objects in a finite product completion category.
‣ IsMorphismInFiniteStrictCoproductCompletionOfObjectFiniteCategory( arg ) | ( filter ) |
Returns: true or false
The GAP category of morphisms in a finite product completion category.
‣ IsFiniteStrictProductCompletion( arg ) | ( filter ) |
Returns: true or false
The GAP category of finite product completion categories.
‣ IsCellInFiniteStrictProductCompletion( arg ) | ( filter ) |
Returns: true or false
The GAP category of cells in a finite product completion category.
‣ IsObjectInFiniteStrictProductCompletion( arg ) | ( filter ) |
Returns: true or false
The GAP category of objects in a finite product completion category.
‣ IsMorphismInFiniteStrictProductCompletion( arg ) | ( filter ) |
Returns: true or false
The GAP category of morphisms in a finite product completion category.
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> PC := FiniteStrictProductCompletion( C ); FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) gap> ModelingCategory( PC ); Opposite( FiniteStrictCoproductCompletion( Opposite( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) ) gap> a := PC.a; <An object in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> b := PC.b; <An object in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> ab := DirectProduct( a, b ); <An object in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> Display( ab ); [ 2, [ C.a, C.b ] ] An object in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) given by the above data gap> ba := DirectProduct( b, a ); <An object in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> gap> Display( ba ); [ 2, [ C.b, C.a ] ] An object in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) given by the above data gap> HomStructure( ab, ba ); |1| gap> hom := MorphismsOfExternalHom( ab, ba ); [ <A morphism in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) )> ] gap> gamma := hom[1]; <A morphism in FiniteStrictProductCompletion( 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 } [ (b)-[(b)]->(b), (a)-[(a)]->(a) ] A morphism in FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) given by the above data gap> gamma = CartesianBraiding( a, b ); true gap> LPC := LazyCategory( PC ); LazyCategory( FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> Emb := EmbeddingFunctorOfUnderlyingCategory( LPC ); Embedding functor into lazy category gap> Display( Emb ); Embedding functor into lazy category: FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) | V LazyCategory( FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> F := PreCompose( EmbeddingOfUnderlyingCategory( PC ), Emb ); Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category gap> Display( F ); Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category: FreeCategory( RightQuiver( "Q(a,b)[]" ) ) | V LazyCategory( FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> G := ExtendFunctorToFiniteStrictProductCompletion( F ); Extension to FiniteStrictProductCompletion( Source( Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category ) ) gap> Display( G ); Extension to FiniteStrictProductCompletion( Source( Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category ) ): FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) | V LazyCategory( FiniteStrictProductCompletion( FreeCategory( RightQuiver( "Q(a,b)[]" ) ) ) ) gap> Ggamma := G( gamma ); <A morphism in LazyCategory( FiniteStrictProductCompletion( 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> PC := FiniteStrictProductCompletion( C ); FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) gap> ModelingCategory( PC ); Opposite( FiniteStrictCoproductCompletion( Opposite( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) ) gap> a := PC.a; <An object in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> gap> aa := DirectProduct( a, a ); <An object in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> gap> Display( aa ); [ 2, [ C.a, C.a ] ] An object in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) given by the above data gap> a = aa; false gap> HomStructure( aa, a ); |2| gap> hom_aa_a := MorphismsOfExternalHom( aa, a ); [ <A morphism in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )>, <A morphism in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> ] gap> hom_aa_a[1] = ProjectionInFactorOfDirectProduct( [ a, a ], 1 ); true gap> hom_aa_a[2] = ProjectionInFactorOfDirectProduct( [ a, a ], 2 ); true gap> HomStructure( a, aa ); |1| gap> hom_a_aa := MorphismsOfExternalHom( a, aa ); [ <A morphism in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> ] gap> delta := hom_a_aa[1]; <A morphism in FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) )> gap> Source( delta ) = a; true gap> Target( delta ) = aa; true gap> IsOne( ComponentOfMorphismIntoDirectProduct( delta, [ a, a ], 1 ) ); true gap> IsOne( ComponentOfMorphismIntoDirectProduct( 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 FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) given by the above data gap> id_a := IdentityMorphism( C.a ); id(a):C.a → C.a gap> delta = CartesianDiagonal( a, 2 ); true gap> CellAsEvaluatableString( delta, [ "C", "PC" ] ); "MorphismConstructor( PC, ObjectConstructor( PC, Pair( 1, [ ObjectConstructor( C, 1 ) ] ) ), Pair( [ 0, 0 ], [ IdentityMorphism( C, ObjectConstructor( C, 1 ) ), IdentityMorphism( C, ObjectConstructor( C, 1 ) ) ] ), ObjectConstructor( PC, Pair( 2, [ ObjectConstructor( C, 1 ), ObjectConstructor( C, 1 ) ] ) ) )" gap> LPC := LazyCategory( PC ); LazyCategory( FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> Emb := EmbeddingFunctorOfUnderlyingCategory( LPC ); Embedding functor into lazy category gap> Display( Emb ); Embedding functor into lazy category: FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) | V LazyCategory( FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> F := PreCompose( EmbeddingOfUnderlyingCategory( PC ), Emb ); Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category gap> Display( F ); Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category: PathCategory( FinQuiver( "Q(a)[]" ) ) | V LazyCategory( FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> G := ExtendFunctorToFiniteStrictProductCompletion( F ); Extension to FiniteStrictProductCompletion( Source( Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category ) ) gap> Display( G ); Extension to FiniteStrictProductCompletion( Source( Precomposition of Embedding functor into a finite strict product completion category and Embedding functor into lazy category ) ): FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) | V LazyCategory( FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) ) gap> Gdelta := G( delta ); <A morphism in LazyCategory( FiniteStrictProductCompletion( PathCategory( FinQuiver( "Q(a)[]" ) ) ) )> gap> IsWellDefined( Gdelta ); true
generated by GAPDoc2HTML