Skip to content
formally verified category theory library
Branch: master
Clone or download
mstn and marcosh Add CoProduct and Either (#26)
* add coproduct and either

* address cr issues

* stylistic improvements on either as coproduct
Latest commit 210141f Jun 10, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs add licence in missing files Apr 18, 2019
src Add CoProduct and Either (#26) Jun 10, 2019
.editorconfig add license Apr 17, 2019
.gitignore add licence in missing files Apr 18, 2019
.travis.yml disable linux build in CI May 21, 2019
LICENSE.txt add license Apr 17, 2019
Makefile add license Apr 17, 2019 add instructions on how to use idris-ct as a dependency May 16, 2019
elba.toml Dual category and functor (#15) May 16, 2019
idris-ct-doc.nix add license Apr 17, 2019
idris-ct.ipkg Dual category and functor (#15) May 16, 2019
idris-ct.nix add license Apr 17, 2019

Build Status License: AGPL v3

Idris category theory

This repository contains several definitions from category theory.

The project is written in Idris, which allows us to state properties (logical propositions) of the code, along with their formal proofs, in the code itself. These provide guarantees that the code is correct by construction.

Moreover, we are using literate Idris, so that we can seamlessly integrate code and documentation, and produce prose documentation alongside the compiled artifacts.

If you want a more detailed and slow introduction to the library, please have a look at the series of blog posts we are writing:

Nix build

If you have Nix installed, you can build the project just by doing


For additional targets, have a look at the instructions in default.nix.

Manual build


You'll need lhs2tex, latexmk and Idris.

Generate documentation

Use make to generate the PDF documentation. You will find it in the docs directory. Look directly in the Makefile for additional options.

You can also consult the documentation directly here.

Build code

You can build manually all the code using

idris --checkpkg idris-ct.ipkg

Build with Elba

Alternatively you can build the library with elba using

elba build

Use as a dependency

The preferred way to use this library as a dependency for another project is using elba.

It should be enough to add the following section

"statebox/idris-ct" = { git = "ssh://" }

to the elba.toml file of your project.


Unless explicitly stated otherwise all files in this repository are licensed under the GNU Affero General Public License.

Copyright © 2019 Stichting Statebox.

You can’t perform that action at this time.