All Projects → statebox → Idris Ct

statebox / Idris Ct

Licence: agpl-3.0
formally verified category theory library

Projects that are alternatives of or similar to Idris Ct

Ltupatternfactory
Lambda the ultimate Pattern Factory: FP, Haskell, Typeclassopedia vs Software Design Patterns
Stars: ✭ 735 (+262.07%)
Mutual labels:  category-theory
Domains
A computational algebra system in Smalltalk.
Stars: ✭ 124 (-38.92%)
Mutual labels:  category-theory
Discopy
a toolbox for computing with monoidal categories
Stars: ✭ 148 (-27.09%)
Mutual labels:  category-theory
Purescript Ctprelude
A Prelude with names from category theory
Stars: ✭ 46 (-77.34%)
Mutual labels:  category-theory
Tikzcd Editor
A simple visual editor for creating commutative diagrams.
Stars: ✭ 1,627 (+701.48%)
Mutual labels:  category-theory
Naive functional programming
A naive approach to functional programming using TypeScript
Stars: ✭ 129 (-36.45%)
Mutual labels:  category-theory
Bow
🏹 Bow is a cross-platform library for Typed Functional Programming in Swift
Stars: ✭ 538 (+165.02%)
Mutual labels:  category-theory
Fstoolkit.errorhandling
An opinionated F# Library for error handling
Stars: ✭ 200 (-1.48%)
Mutual labels:  category-theory
Foundational Knowledge For Programmers
List of resources about foundational knowledge for programmers (supposed to last a few decades)
Stars: ✭ 115 (-43.35%)
Mutual labels:  category-theory
Lawvere
A categorical programming language with effects
Stars: ✭ 142 (-30.05%)
Mutual labels:  category-theory
Milewski Ctfp Pdf
Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source
Stars: ✭ 9,037 (+4351.72%)
Mutual labels:  category-theory
Fundamental Haskell
Fundamental Haskell book, to the point terse statements on Haskell, Category theory, and related fields. Encyclopedic pocketbook of meaning. Zen kōan-like meditations of understanding. For quick or memory curve spaced repetition learning.
Stars: ✭ 88 (-56.65%)
Mutual labels:  category-theory
Cql
CQL: Categorical Query Language implementation in Haskell
Stars: ✭ 132 (-34.98%)
Mutual labels:  category-theory
Fp Core.rs
A library for functional programming in Rust
Stars: ✭ 772 (+280.3%)
Mutual labels:  category-theory
Functional Examples
Examples with Functional JavaScript, following Professor Frisby's course
Stars: ✭ 179 (-11.82%)
Mutual labels:  category-theory
Category Theory
An axiom-free formalization of category theory in Coq for personal study and practical work
Stars: ✭ 562 (+176.85%)
Mutual labels:  category-theory
Quiver
A modern commutative diagram editor for the web.
Stars: ✭ 1,799 (+786.21%)
Mutual labels:  category-theory
Bastet
A ReasonML/Ocaml library for category theory and abstract algebra
Stars: ✭ 200 (-1.48%)
Mutual labels:  category-theory
Cql
Categorical Query Language IDE
Stars: ✭ 196 (-3.45%)
Mutual labels:  category-theory
Categories
Categories parametrized by morphism equality, in Agda
Stars: ✭ 141 (-30.54%)
Mutual labels:  category-theory

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

nix-build

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

If you get an error message like error: cloning builder process: Operation not permitted, run

sysctl kernel.unprivileged_userns_clone=1

as suggested in https://github.com/NixOS/nix/issues/2633

Manual build

Prerequisites

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.

Generate comparaison data with Idris2

Use make compare to output which files have not been converted to Idris2.

If the executable has already been generated, simply execute ./compare src/ idris2/ to rerun the comparaison between the two file trees.

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

[dependencies]
"statebox/idris-ct" = { git = "https://github.com/statebox/idris-ct" }

to the elba.toml file of your project.

License

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

Copyright © 2019 Stichting Statebox.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].