5
votes

Are there any "recommended" libraries that provide a easy-to-use formalisation of basic category theory in Agda? The Agda standard library seems to provide very little in this regard.

I'm looking for something with a low barrier to entry, similar to how one uses the algebraic structures such as Semigroup defined in the standard library.

For example, there are several notions of morphism in my current project, and overloading syntax for composition and identity gets awkward. The natural thing to do would be to introduce a suitable record type and use Agda's "instance arguments" mechanism to emulate a Morphism type class. But no doubt this must be a wheel that has been invented many times. (Ok, there is a structure called Morphism in the standard library which perhaps could be adapted to this purpose, so this isn't necessarily the best example, but you get the idea.)

I'm aware of this library, which looks comprehensive, but doesn't seem to be particularly active.

1
Hmm, well the library you linked to is seems to be officially blessed by Agda, it's forked into the main GitHub account. Do you have any particular shortcomings with categories? I suspect that it's not dead so much as sleeping.Daniel Gratzer
No particular shortcomings, although the README does have a disclaimer to the effect that the package structure is a mess (which can make getting used to a new library a pain). I guess I'm more interested in whether it's widely used, rather than whether it's under active development.Roly

1 Answers

2
votes

I'm using the Categories library as mentioned above, and although I'm only using its basic features, it seems fine so far.