CAP-based packages

Categorical doctrines

CAP defines and allows defining (hierarchies of) categorical doctrines.

  • There are several CAP-based packages that define various categorical doctrines.
  • Defining a doctrine means several things:
    1. Type specification of all the categorical operations which are required by the doctrine: In particular this means specifying those operations involved in the definition of a certain (co)limit (e.g., a kernel) which exists in the doctrine (e.g., Abelian category). This includes the specification of the input and output1,2 of each such operation. Specifying a certain limit means specifying all operations involved in the definition of that limit.
      For example, specifying “kernel” means specifying all operations entering the definition of the “kernel”:
    2. Doctrine-specific derivations of categorical operations from other ones: For example in an Abelian category the LiftAlongMonomorphism can be derived from6

      This is wrong in other doctrines like pre-Abelian, and does not even make sense in doctrines without kernels and cokernels.

    3. Doctrine-specific logical implications: For example, in an Abelian category the algorithm IsIsomorphism( ImageEmbedding( α ) ) is equivalent to the algorithm IsEpimorphism( α ). Again, this is wrong in other doctrines like pre-Abelian.
  • Even if GAP (automatically) organizes the doctrines in hierarchies, the relations among the category (instances) fulfilling these doctrines are much richer than these hierarchies.6 These relations are given by several functors, natural transformations between (parallel) functors, and adjunctions (also described by natural transformations) between (anti-parallel) functors.
    For example, in set-theoretic modelling of mathematics one would say that a group is a monoid (in which each element is invertible). In category-theoretic modelling of mathematics one would say that there is a fully faithful forgetful functor from the category of groups to that of monoids which has a left adjoint and a right adjoint:
    • The left adjoint adds formal inverses to the monoid (Grothendieck construction in the commutative case).
    • The right adjoint maps a monoid to its group of units.

Category constructors and building towers of categories

The CAP-based packages provide various category constructors which take a combinatorial or algebraic data structure, or even a category or several categories (of a certain doctrine) as input and provide another category (of a possibly different doctrine) as output. The true strength of CAP is that it allows concatenating these category constructor to build arbitrary high towers.

Functors and natural transformations

The CAP-based packages provide various functors between these categories as well as natural transformations between (parallel) functors.

CompilerForCAP

CompilerForCAP should be able to use the logical rules valid in the various doctrines to compile these towers of categories —built by applying multiple category constructors— and produce highly efficient (parallel) code (ultimately in HPC-GAP/Julia).

Packages part of or based on CAP_project:

Name Description Documentation Build Status Code Coverage Status
CAP Categories, Algorithms, Programming HTML stable documentation PDF stable documentation Build Status Code Coverage deposited
Algebroids Algebroids and bialgebroids as preadditive categories generated by enhanced quivers HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ActionsForCAP Actions and Coactions for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
AttributeCategoryForCAP Automatic enhancement with attributes of a CAP category HTML stable documentation PDF stable documentation Build Status Code Coverage dev
Bicomplexes Bicomplexes for Abelian categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
CartesianCategories Cartesian and cocartesian categories and various subdoctrines HTML stable documentation PDF stable documentation Build Status Code Coverage dev
CategoriesWithAmbientObjects Categories with objects having ambient objects HTML stable documentation PDF stable documentation Build Status Code Coverage dev
CatReps Representations and cohomology of finite categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
CompilerForCAP Speed up and verify categorical algorithms HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ComplexesAndFilteredObjectsForCAP Implementation of complexes, cocomplexes and filtered objects for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ComplexesCategories Category of (co)chain complexes of an additive category HTML stable documentation PDF stable documentation Build Status Code Coverage dev
DerivedCategories Derived categories of Abelian categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ExteriorPowersCategories The graded category of exterior powers of objects of a given Ab-category HTML stable documentation PDF stable documentation Build Status Code Coverage dev
FinSetsForCAP The elementary topos of (skeletal) finite sets HTML stable documentation PDF stable documentation Build Status Code Coverage dev
FinGSetsForCAP The elementary topos of (skeletal) finite G-sets HTML stable documentation PDF stable documentation Build Status Code Coverage dev
FiniteCocompletions Finite (co)product/(co)limit (co)completions HTML stable documentation PDF stable documentation Build Status Code Coverage dev
FpCategories Finitely presented categories by generating quivers and relations HTML stable documentation PDF stable documentation Build Status Code Coverage dev
FreydCategoriesForCAP Freyd categories - Formal (co)kernels for additive categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
FunctorCategories Categories of functors HTML stable documentation PDF stable documentation Build Status Code Coverage dev
GeneralizedMorphismsForCAP Implementations of generalized morphisms for the CAP project HTML stable documentation PDF stable documentation Build Status Code Coverage deposited
GradedCategories Graded closures of categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
GradedModulePresentationsForCAP Presentations for graded modules HTML stable documentation PDF stable documentation Build Status Code Coverage dev
GroupRepresentationsForCAP Skeletal category of group representations for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
HeckeCategories Categorification of Hecke algebras HTML stable documentation PDF stable documentation Build Status Code Coverage dev
HomologicalAlgebraForCAP Homological algebra algorithms for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
HomotopyCategories Homotopy categories of additive categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
InternalExteriorAlgebraForCAP Constructions for Modules over the Internal Exterior Algebra for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
InternalModules Modules over internal algebras HTML stable documentation PDF stable documentation Build Status Code Coverage dev
IntrinsicCategories Intrinsic categories for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
IntrinsicGradedModules Finitely presented graded modules over computable graded rings allowing multiple presentations and the notion of elements HTML stable documentation PDF stable documentation Build Status Code Coverage dev
IntrinsicModules Finitely presented modules over computable rings allowing multiple presentations and the notion of elements HTML stable documentation PDF stable documentation Build Status Code Coverage dev
LazyCategories Construct an equivalent lazy category out of a CAP category HTML stable documentation PDF stable documentation Build Status Code Coverage dev
LinearAlgebraForCAP Category of Matrices over a Field for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage deposited
Locales Locales, frames, coframes, meet semi-lattices of locally closed subsets, and Boolean algebras of constructible sets HTML stable documentation PDF stable documentation Build Status Code Coverage dev
MachineLearningForCAP Exploring categorical machine learning in CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ModulePresentationsForCAP Category R-pres for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage deposited
ModulesOverLocalRingsForCAP Category of modules over a local ring modeled by Serre quotients for CAP HTML stable documentation PDF stable documentation Build Status Code Coverage dev
MonoidalCategories Monoidal and monoidal (co)closed categories HTML stable documentation PDF stable documentation Build Status Code Coverage deposited
PreSheaves Categories of (co)presheaves HTML stable documentation PDF stable documentation Build Status Code Coverage dev
QPA2 Quivers and Path Algebras N/A N/A N/A dev
QuotientCategories Quotient categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
StableCategories Stable categories of additive categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
SubcategoriesForCAP Subcategory and other related constructors for CAP categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ToolsForCategoricalTowers Tools for CategoricalTowers HTML stable documentation PDF stable documentation Build Status Code Coverage dev
Toposes Elementary toposes HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ToricSheaves Toric sheaves as Serre quotients HTML stable documentation PDF stable documentation Build Status Code Coverage dev
TriangulatedCategories Framework for triangulated categories HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ZariskiFrames (Co)frames/Locales of Zariski closed/open subsets of affine, projective, or toric varieties HTML stable documentation PDF stable documentation Build Status Code Coverage dev
ZXCalculusForCAP The category of ZX-diagrams HTML stable documentation PDF stable documentation Build Status Code Coverage dev

1 Kernel: Documentation of the limit.
2 Kernel: Specification of the limit.
3 Specification of KernelObject.
4 Specification of KernelEmbedding.
5 Specification of KernelLift.
6 One can view a doctrine as a (specific) 2-category and the category of doctrines as a 3-category of 2-categories.