Skip to content

Commit

Permalink
Several category constructors now use FinQuiver instead of RightQuiver
Browse files Browse the repository at this point in the history
* SimplicialCategoryTruncatedInDegree
* CategoryOfBouquetsEnrichedOver
* CategoryOfQuiversEnrichedOver
  • Loading branch information
mohamed-barakat committed Sep 22, 2024
1 parent 12bde43 commit 3f49083
Show file tree
Hide file tree
Showing 64 changed files with 2,162 additions and 1,533 deletions.
4 changes: 2 additions & 2 deletions Algebroids/PackageInfo.g
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ SetPackageInfo( rec(

PackageName := "Algebroids",
Subtitle := "Algebroids and bialgebroids as preadditive categories generated by enhanced quivers",
Version := "2024.09-03",
Version := "2024.09-04",
Date := ~.Version{[ 1 .. 10 ]},
Date := (function ( ) if IsBound( GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE ) then return GAPInfo.SystemEnvironment.GAP_PKG_RELEASE_DATE; else return Concatenation( ~.Version{[ 1 .. 4 ]}, "-", ~.Version{[ 6, 7 ]}, "-01" ); fi; end)( ),
License := "GPL-2.0-or-later",
Expand Down Expand Up @@ -137,7 +137,7 @@ Dependencies := rec(
[ "CartesianCategories", ">= 2024.02-01" ],
[ "Toposes", ">= 2023.03-05" ],
[ "FinSetsForCAP", ">= 2024.02-02" ],
[ "FpCategories", ">= 2024.09-04" ],
[ "FpCategories", ">= 2024.09-06" ],
[ "QPA", ">= 2.0" ],
[ "MatricesForHomalg", ">= 2021.12-01" ],
[ "FreydCategoriesForCAP", ">= 2024.07-05" ],
Expand Down
4 changes: 0 additions & 4 deletions Algebroids/doc/Doc.autodoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@
@Section A f.p. category
@InsertChunk FpCategory

@Section The full subcategory of the simplicial category truncated in degree 2
@InsertChunk Delta2

@Section Algebroids
@InsertChunk Algebroid

Expand Down Expand Up @@ -103,5 +100,4 @@
@InsertChunk PrecompileAdditiveClosureOfAlgebroid
@InsertChunk PrecompileAdditiveClosureOfAlgebroidFromDataTables
@InsertChunk PrecompileAdelmanCategoryOfAdditiveClosureOfAlgebroid
@InsertChunk PrecompileCategoryFromNerveData
@InsertChunk PrecompileCategoryFromDataTables
26 changes: 13 additions & 13 deletions Algebroids/examples/CategoryFromDataTables.g
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,20 @@
LoadPackage( "Algebroids", false );
#! true
Delta1 := SimplicialCategoryTruncatedInDegree( 1 );
#! FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
#! / [ s*id = C0, t*id = C0 ]
#! PathCategory( FinQuiver( "Delta(C0,C1)[id:C1-C0,s:C0-C1,t:C0-C1]" ) )
#! / [ sid = id(C0), tid = id(C0) ]
Size( Delta1 );
#! 7
mors := SetOfMorphisms( Delta1 );
#! [ (C0)-[(C0)]->(C0), (C1)-[(id)]->(C0), (C0)-[(s)]->(C1), (C0)-[(t)]->(C1),
#! (C1)-[(C1)]->(C1), (C1)-[(id*s)]->(C1), (C1)-[(id*t)]->(C1) ]
#! [ [id(C0)]:(C0) -≻ (C0), [id]:(C1) -≻ (C0), [s]:(C0) -≻ (C1), [t]:(C0) -≻ (C1),
#! [id(C1)]:(C1) -≻ (C1), [id⋅s]:(C1) -≻ (C1), [id⋅t]:(C1) -≻ (C1) ]
List( mors, DecompositionOfMorphismInCategory );
#! [ [ ], [ (C1)-[(id)]->(C0) ], [ (C0)-[(s)]->(C1) ], [ (C0)-[(t)]->(C1) ],
#! [ ], [ (C1)-[(id)]->(C0), (C0)-[(s)]->(C1) ],
#! [ (C1)-[(id)]->(C0), (C0)-[(t)]->(C1) ] ]
#! [ [ ], [ [id]:(C1) -≻ (C0) ], [ [s]:(C0) -≻ (C1) ], [ [t]:(C0) -≻ (C1) ],
#! [ ], [ [id]:(C1) -≻ (C0), [s]:(C0) -≻ (C1) ],
#! [ [id]:(C1) -≻ (C0), [t]:(C0) -≻ (C1) ] ]
C := CategoryFromDataTables( Delta1 );
#! FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
#! / [ s*id = C0, t*id = C0 ]
#! PathCategory( FinQuiver( "Delta(C0,C1)[id:C1-C0,s:C0-C1,t:C0-C1]" ) )
#! / [ sid = id(C0), tid = id(C0) ]
Size( C );
#! 7
morsC := SetOfMorphisms( C );
Expand All @@ -35,8 +35,8 @@ SetOfGeneratingMorphisms( C );
#! [ (C1)-[(id)]->(C0), (C0)-[(s)]->(C1), (C0)-[(t)]->(C1) ]
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 ]:
#! PathCategory( FinQuiver( "Delta(C0,C1)[id:C1-C0,s:C0-C1,t:C0-C1]" ) )
#! / [ sid = id(C0), tid = id(C0) ]:
#!
#! 19 primitive operations were used to derive 55 operations for this category
#! which algorithmically
Expand Down Expand Up @@ -161,8 +161,8 @@ List( mors, DecompositionOfMorphismInCategory );
#! [ (C1)-[(id)]->(C0), (C0)-[(t)]->(C1) ] ]
C_op := OppositeCategoryFromDataTables( C );
#! Opposite(
#! FreeCategory( RightQuiver( "Delta(C0,C1)[id:C1->C0,s:C0->C1,t:C0->C1]" ) )
#! / [ s*id = C0, t*id = C0 ] )
#! PathCategory( FinQuiver( "Delta(C0,C1)[id:C1-C0,s:C0-C1,t:C0-C1]" ) )
#! / [ sid = id(C0), tid = id(C0) ] )
IsIdenticalObj( OppositeCategoryFromDataTables( C_op ), C );
#! true
IndicesOfGeneratingMorphisms( C_op );
Expand Down
31 changes: 0 additions & 31 deletions Algebroids/examples/doc/Delta2.g

This file was deleted.

50 changes: 0 additions & 50 deletions Algebroids/examples/doc/NerveTruncatedInDegree2AsFunctor.g

This file was deleted.

63 changes: 0 additions & 63 deletions Algebroids/examples/doc/YonedaCompositionAsNaturalEpimorphism.g

This file was deleted.

14 changes: 0 additions & 14 deletions Algebroids/gap/Algebroids.gd
Original file line number Diff line number Diff line change
Expand Up @@ -463,20 +463,6 @@ DeclareOperation( "CapFunctor",
DeclareOperation( "CapFunctor",
[ IsAlgebroid, IsCapCategoryObject ] );

#! @Description
#! Construct, using the record (or list) of images <A>eta</A>, a natural transformation
#! from the functor <A>F</A> to the parallel functor <A>G</A>.
#! @Arguments eta, F, G
#! @Returns a &CAP; natural transformation
#! @Group NaturalTransformation
DeclareOperation( "NaturalTransformation",
[ IsRecord, IsCapFunctor, IsCapFunctor ] );

#! @Arguments F, eta, G
#! @Group NaturalTransformation
DeclareOperation( "NaturalTransformation",
[ IsCapFunctor, IsList, IsCapFunctor ] );

#! @Description
#! The constructor of objects in an algebroid <A>A</A> given a vertex <A>V</A>
#! in the underlying quiver.
Expand Down
32 changes: 0 additions & 32 deletions Algebroids/gap/Algebroids.gi
Original file line number Diff line number Diff line change
Expand Up @@ -2161,38 +2161,6 @@ InstallMethod( IsCommutative,
return true;
end );

##
InstallMethod( NaturalTransformation,
"for a list and two CAP functors",
[ IsCapFunctor, IsList, IsCapFunctor ],

function( F, images, G )
local eta, vertices;

eta := NaturalTransformation( Concatenation( "Natural transformation from ", Name( F ), " -> ", Name( G ) ), F, G );

eta!.ValuesOnAllObjects := images;

vertices := Vertices( QuiverOfAlgebra( UnderlyingQuiverAlgebra( AsCapCategory( Source( F ) ) ) ) );

AddNaturalTransformationFunction( eta,
function( source, obj, range )
local pos;

pos := SafePosition( vertices, UnderlyingVertex( obj ) );

if not IsInt( pos ) then
Error( "vertex UnderlyingVertex( obj ) = ", UnderlyingVertex( obj ), " not found in the list ", vertices, " of vertices\n" );
fi;

return images[pos];

end );

return eta;

end );

##
InstallMethod( NaturalTransformation,
"for a record and two CAP functors",
Expand Down
8 changes: 8 additions & 0 deletions Algebroids/gap/CategoryFromDataTables.gd
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,14 @@ DeclareAttribute( "CategoryFromDataTables",
DeclareAttribute( "CategoryFromDataTables",
IsFpCategory );

#! @Arguments C
DeclareAttribute( "CategoryFromDataTables",
IsPathCategory );

#! @Arguments C
DeclareAttribute( "CategoryFromDataTables",
IsQuotientOfPathCategory );

#! @Arguments C
DeclareAttribute( "CategoryFromDataTables",
IsCategoryFromNerveData );
Expand Down
57 changes: 57 additions & 0 deletions Algebroids/gap/CategoryFromDataTables.gi
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,45 @@ InstallMethod( CategoryFromDataTables,

end );

##
InstallMethod( CategoryFromDataTables,
"for a path category",
[ IsPathCategory ],

function( C )

return CategoryFromDataTables(
rec( name := Name( C ),
range_of_HomStructure := RangeCategoryOfHomomorphismStructure( C ),
data_tables := DataTablesOfCategory( C ),
indices_of_generating_morphisms := IndicesOfGeneratingMorphismsFromHomStructure( C ),
decomposition_of_all_morphisms := DecompositionIndicesOfAllMorphismsFromHomStructure( C ),
relations := RelationsAmongGeneratingMorphisms( C ),
labels := [ List( SetOfObjects( C ), ObjectLabel ), List( SetOfGeneratingMorphisms( C ), MorphismLabel ) ],
properties := ListKnownCategoricalProperties( C ) ) );

end );

##
InstallMethod( CategoryFromDataTables,
"for a quotient of a path category",
[ IsQuotientOfPathCategory ],

function( C )

return CategoryFromDataTables(
rec( name := Name( C ),
range_of_HomStructure := RangeCategoryOfHomomorphismStructure( C ),
data_tables := DataTablesOfCategory( C ),
indices_of_generating_morphisms := IndicesOfGeneratingMorphismsFromHomStructure( C ),
decomposition_of_all_morphisms := DecompositionIndicesOfAllMorphismsFromHomStructure( C ),
relations := RelationsAmongGeneratingMorphisms( C ),
labels := [ List( SetOfObjects( C ), o -> ObjectLabel( UnderlyingCell( o ) ) ),
List( SetOfGeneratingMorphisms( C ), m -> MorphismLabel( CanonicalRepresentative( m ) ) ) ],
properties := ListKnownCategoricalProperties( C ) ) );

end );

##
InstallMethod( CategoryFromDataTables,
"for a category from nerve data",
Expand Down Expand Up @@ -499,6 +538,24 @@ InstallMethod( \.,

end );

##
InstallOtherMethod( CategoryFromNerveData,
"for a category from data tables",
[ IsCategoryFromDataTables ],

function( C )

return CategoryFromNerveData(
rec( name := Name( C ),
nerve_data := NerveTruncatedInDegree2Data( C ),
indices_of_generating_morphisms := IndicesOfGeneratingMorphismsFromHomStructure( C ),
decomposition_of_all_morphisms := DecompositionIndicesOfAllMorphisms( C ),
relations := RelationsAmongGeneratingMorphisms( C ),
labels := C!.labels,
properties := ListKnownCategoricalProperties( C ) ) );

end );

##
InstallMethod( OppositeCategoryFromDataTables,
"for a category from data tables",
Expand Down
Loading

0 comments on commit 3f49083

Please sign in to comment.