‣ Length ( M ) | ( attribute ) |
Returns: an integer
The integer defining the skeletal finite set M, i.e., Length( FinSet( n ) ) = n
.
‣ AsList ( M ) | ( attribute ) |
Returns: a list
The list associated to a skeletal finite set, i.e., AsList( FinSet( n ) ) = [ 0 .. n - 1 ]
.
‣ AsList ( phi ) | ( attribute ) |
Returns: a lazy array
The lazy array of images between skeletal finite sets.
‣ SkeletalCategoryOfFiniteSetsAsFiniteStrictCoproductCompletionOfTerminalCategory ( arg ) | ( function ) |
Returns: a CAP category
Construct a category of skeletal finite sets as the finite coproduct cocompletion of the terminal category.
‣ SkeletalFinSetsAsFreeElementaryToposOfInitialCategory | ( global variable ) |
The default instance of the category of skeletal finite sets. It is automatically created while loading this package.
‣ IsSkeletalCategoryOfFiniteSetsAsFiniteStrictCoproductCompletionOfTerminalCategory ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of a finite coproduct cocompletion category.
‣ IsCellInSkeletalCategoryOfFiniteSetsAsFiniteStrictCoproductCompletionOfTerminalCategory ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of cells in the category of skeletal finsets.
‣ IsObjectInSkeletalCategoryOfFiniteSetsAsFiniteStrictCoproductCompletionOfTerminalCategory ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of objects in the category of skeletal finsets.
‣ IsMorphismInSkeletalCategoryOfFiniteSetsAsFiniteStrictCoproductCompletionOfTerminalCategory ( arg ) | ( filter ) |
Returns: true
or false
The GAP category of morphisms in the category of skeletal finsets.
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> Display( sFinSets ); A CAP category with name SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory: 35 primitive operations were used to derive 165 operations for this category which algorithmically * IsCategoryWithDecidableColifts * IsCategoryWithDecidableLifts * IsEquippedWithHomomorphismStructure * IsFiniteCompleteCategory * IsDistributiveCategory and furthermore mathematically * IsStrictCartesianCategory * IsStrictCocartesianCategory gap> s := ObjectConstructor( sFinSets, 7 ); |7| gap> ObjectDatum( s ); 7 gap> t := ObjectConstructor( sFinSets, 4 ); |4| gap> ObjectDatum( t ); 4 gap> psi := MorphismConstructor( s, [ 0, 2, 1, 2, 1, 3 ], t ); |7| → |4| gap> IsWellDefined( psi ); false gap> psi := MorphismConstructor( s, [ 0, 2, 1, 2, 1, 3, -2 ], t ); |7| → |4| gap> IsWellDefined( psi ); false gap> psi := MorphismConstructor( s, [ 1, 2, 1, 4, 2, 1, 3 ], t ); |7| → |4| gap> IsWellDefined( psi ); false gap> psi:= MorphismConstructor( s, [ 0, 2, 1, 3, 2, 1, 3 ], t ); |7| → |4| gap> IsWellDefined( psi ); true gap> Display( psi ); { 0,..., 6 } ⱶ[ 0, 2, 1, 3, 2, 1, 3 ]→ { 0,..., 3 } gap> MorphismDatum( psi ); [ 0, 2, 1, 3, 2, 1, 3 ]
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> m := ObjectConstructor( sFinSets, 3 ); |3| gap> n := ObjectConstructor( sFinSets, 5 ); |5| gap> p := ObjectConstructor( sFinSets, 7 ); |7| gap> psi := MorphismConstructor( m, [ 1, 4, 2 ], n ); |3| → |5| gap> phi := MorphismConstructor( n, [ 0, 3, 5, 5, 2 ], p ); |5| → |7| gap> alpha := PreCompose( psi, phi ); |3| → |7| gap> Display( alpha ); { 0, 1, 2 } ⱶ[ 3, 2, 5 ]→ { 0,..., 6 }
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> m := ObjectConstructor( sFinSets, 3 ); |3| gap> n := ObjectConstructor( sFinSets, 4 ); |4| gap> f := MorphismConstructor( m, [ 1, 1, 0 ], m ); |3| → |3| gap> g := MorphismConstructor( n, [ 2, 1, 0, 1 ], m ); |4| → |3| gap> IsLiftable( f, g ); true gap> chi := Lift( f, g ); |3| → |4| gap> Display( chi ); { 0, 1, 2 } ⱶ[ 1, 1, 2 ]→ { 0,..., 3 } gap> PreCompose( Lift( f, g ), g ) = f; true gap> IsLiftable( g, f ); false gap> k := ObjectConstructor( sFinSets, 100000 ); |100000| gap> h := ListWithIdenticalEntries( Length( k ) - 3, 2 );; gap> h := Concatenation( h, [ 1, 0, 1 ] );; gap> h := MorphismConstructor( k, h, m ); |100000| → |3| gap> IsLiftable( f, h ); true gap> IsLiftable( h, f ); false
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> L := ObjectConstructor( sFinSets, 0 ); |0| gap> M := ObjectConstructor( sFinSets, 2 ); |2| gap> N := ObjectConstructor( sFinSets, 3 ); |3| gap> Display( MorphismsOfExternalHom( L, L ) ); [ ∅ ⱶ[ ]→ ∅ ] gap> Display( MorphismsOfExternalHom( M, L ) ); [ ] gap> Display( MorphismsOfExternalHom( L, M ) ); [ ∅ ⱶ[ ]→ { 0, 1 } ] gap> Display( MorphismsOfExternalHom( M, N ) ); [ { 0, 1 } ⱶ[ 0, 0 ]→ { 0, 1, 2 }, { 0, 1 } ⱶ[ 1, 0 ]→ { 0, 1, 2 },\ { 0, 1 } ⱶ[ 2, 0 ]→ { 0, 1, 2 }, { 0, 1 } ⱶ[ 0, 1 ]→ { 0, 1, 2 },\ { 0, 1 } ⱶ[ 1, 1 ]→ { 0, 1, 2 }, { 0, 1 } ⱶ[ 2, 1 ]→ { 0, 1, 2 },\ { 0, 1 } ⱶ[ 0, 2 ]→ { 0, 1, 2 }, { 0, 1 } ⱶ[ 1, 2 ]→ { 0, 1, 2 },\ { 0, 1 } ⱶ[ 2, 2 ]→ { 0, 1, 2 } ]
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> m := ObjectConstructor( sFinSets, 8 ); |8| gap> IsInitial( m ); false gap> IsTerminal( m ); false gap> i := InitialObject( sFinSets ); |0| gap> AsList( i ); [ ] gap> Display( i ); ∅ gap> IsInitial( i ); true gap> IsTerminal( i ); false gap> iota := UniversalMorphismFromInitialObject( m ); |0| → |8| gap> ii := InitialObjectFunctorial( sFinSets ); |0| → |0| gap> IsOne( ii ); true gap> ii; |0| ⭇ |0| gap> t := TerminalObject( sFinSets ); |1| gap> AsList( t ); [ 0 ] gap> Display( t ); { 0 } gap> IsInitial( t ); false gap> IsTerminal( t ); true gap> pi := UniversalMorphismIntoTerminalObject( m ); |8| → |1| gap> IsIdenticalObj( Target( pi ), t ); true gap> pi_t := UniversalMorphismIntoTerminalObjectWithGivenTerminalObject( m, t ); |8| → |1| gap> Display( pi_t ); { 0,..., 7 } ⱶ[ 0, 0, 0, 0, 0, 0, 0, 0 ]→ { 0 } gap> pi = pi_t; true
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> m := ObjectConstructor( sFinSets, 7 ); |7| gap> n := ObjectConstructor( sFinSets, 3 ); |3| gap> p := ObjectConstructor( sFinSets, 4 ); |4| gap> d := DirectProduct( [ m, n, p ] ); |84| gap> AsList( d ); [ 0 .. 83 ] gap> pi1 := ProjectionInFactorOfDirectProduct( [ m, n, p ], 1 ); |84| → |7| gap> Display( pi1 ); { 0,..., 83 } ⱶ[ 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6 ]→ { 0,..., 6 } gap> pi2 := ProjectionInFactorOfDirectProduct( [ m, n, p ], 2 ); |84| → |3| gap> Display( pi2 ); { 0,..., 83 } ⱶ[ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2 ]→ { 0, 1, 2 } gap> pi3 := ProjectionInFactorOfDirectProduct( [ m, n, p ], 3 ); |84| → |4| gap> Display( pi3 ); { 0,..., 83 } ⱶ[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ]→ { 0,..., 3 } gap> psi := UniversalMorphismIntoDirectProduct( [ m, n, p ], [ pi1, pi2, pi3 ] ); |84| → |84| gap> psi = IdentityMorphism( d ); true
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> m := ObjectConstructor( sFinSets, 7 ); |7| gap> n := ObjectConstructor( sFinSets, 3 ); |3| gap> p := ObjectConstructor( sFinSets, 4 ); |4| gap> c := Coproduct( m, n, p ); |14| gap> AsList( c ); [ 0 .. 13 ] gap> iota1 := InjectionOfCofactorOfCoproduct( [ m, n, p ], 1 ); |7| → |14| gap> IsWellDefined( iota1 ); true gap> Display( iota1 ); { 0,..., 6 } ⱶ[ 0 .. 6 ]→ { 0,..., 13 } gap> iota2 := InjectionOfCofactorOfCoproduct( [ m, n, p ], 2 ); |3| → |14| gap> IsWellDefined( iota2 ); true gap> Display( iota2 ); { 0, 1, 2 } ⱶ[ 7 .. 9 ]→ { 0,..., 13 } gap> iota3 := InjectionOfCofactorOfCoproduct( [ m, n, p ], 3 ); |4| → |14| gap> IsWellDefined( iota3 ); true gap> Display( iota3 ); { 0,..., 3 } ⱶ[ 10 .. 13 ]→ { 0,..., 13 } gap> psi := UniversalMorphismFromCoproduct( > [ m, n, p ], [ iota1, iota2, iota3 ] ); |14| → |14| gap> id := IdentityMorphism( Coproduct( [ m, n, p ] ) ); |14| → |14| gap> psi = id; true
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> m := ObjectConstructor( sFinSets, 3 ); |3| gap> n := ObjectConstructor( sFinSets, 5 ); |5| gap> iota:= MorphismConstructor( m, [ 1, 4, 2 ], n ); |3| → |5| gap> Display( iota ); { 0, 1, 2 } ⱶ[ 1, 4, 2 ]→ { 0,..., 4 } gap> kappa := InjectionOfCoproductComplement( iota ); |2| → |5| gap> IsWellDefined( kappa ); true gap> Display( kappa ); { 0, 1 } ⱶ[ 0, 3 ]→ { 0,..., 4 } gap> iso := UniversalMorphismFromCoproduct( [ iota, kappa ] ); |5| → |5| gap> IsWellDefined( iso ); true gap> Display( iso ); { 0,..., 4 } ⱶ[ 1, 4, 2, 0, 3 ]→ { 0,..., 4 } gap> IsIsomorphism( iso ); true
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> S := ObjectConstructor( sFinSets, 5 ); |5| gap> T := ObjectConstructor( sFinSets, 3 ); |3| gap> f1 := MorphismConstructor( S, [ 2, 2, 0, 1, 1 ], T ); |5| → |3| gap> f2 := MorphismConstructor( S, [ 2, 1, 2, 0, 1 ], T ); |5| → |3| gap> f3 := MorphismConstructor( S, [ 2, 0, 1, 0, 1 ], T ); |5| → |3| gap> D := [ f1, f2, f3 ];; gap> Eq := Equalizer( D ); |2| gap> iota := EmbeddingOfEqualizer( D ); |2| → |5| gap> Display( iota ); { 0, 1 } ⱶ[ 0, 4 ]→ { 0,..., 4 } gap> phi := MorphismConstructor( ObjectConstructor( sFinSets, 2 ), [ 4, 0 ], S );; gap> IsWellDefined( phi ); true gap> psi := UniversalMorphismIntoEqualizer( D, phi ); |2| → |2| gap> IsWellDefined( psi ); true gap> Display( psi ); { 0, 1 } ⱶ[ 1, 0 ]→ { 0, 1 } gap> PreCompose( psi, iota ) = phi; true gap> D := [ f2, f3 ];; gap> Eq := Equalizer( D ); |3| gap> psi := EmbeddingOfEqualizer( D ); |3| → |5| gap> Display( psi ); { 0, 1, 2 } ⱶ[ 0, 3, 4 ]→ { 0,..., 4 }
gap> LoadPackage( "FiniteCocompletions", false ); true gap> sFinSets := > SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory; SkeletalFinSetsAsFiniteStrictCoproductCompletionOfTerminalCategory gap> A := ObjectConstructor( sFinSets, 3 ); |3| gap> Display( A ); { 0, 1, 2 } gap> B := ObjectConstructor( sFinSets, 2 ); |2| gap> A = B; false gap> Display( B ); { 0, 1 } gap> HomAB := HomStructure( A, B ); |8| gap> I := HomStructure( sFinSets ); |1| gap> homAB := List( [ 0 .. Length( HomAB ) - 1 ], i -> > MorphismConstructor( I, [ i ], HomAB ) ); [ |1| → |8|, |1| → |8|, |1| → |8|, |1| → |8|, |1| → |8|, |1| → |8|, |1| → |8|, |1| → |8| ] 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] ); |3| → |2| gap> Display( alpha ); { 0, 1, 2 } ⱶ[ 1, 0, 1 ]→ { 0, 1 } gap> gamma := HomStructure( A, B, homAB[2] ); |3| → |2| gap> Display( gamma ); { 0, 1, 2 } ⱶ[ 1, 0, 0 ]→ { 0, 1 } gap> hom_alpha_gamma := HomStructure( alpha, gamma ); |9| → |8| gap> Display( hom_alpha_gamma ); { 0,..., 8 } ⱶ[ 7, 5, 5, 2, 0, 0, 2, 0, 0 ]→ { 0,..., 7 } gap> IsWellDefined( hom_alpha_gamma ); true
generated by GAPDoc2HTML