Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/artagnon/bonak
🧊 An indexed construction of semi-simplicial and semi-cubical types
https://github.com/artagnon/bonak
coq cubical-type-theory formalization homotopy-type-theory paper research-project
Last synced: about 2 months ago
JSON representation
🧊 An indexed construction of semi-simplicial and semi-cubical types
- Host: GitHub
- URL: https://github.com/artagnon/bonak
- Owner: artagnon
- License: mit
- Created: 2019-08-15T15:40:39.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T08:18:47.000Z (2 months ago)
- Last Synced: 2024-10-21T11:26:33.134Z (2 months ago)
- Topics: coq, cubical-type-theory, formalization, homotopy-type-theory, paper, research-project
- Language: TeX
- Homepage: https://artagnon.github.io/bonak
- Size: 3.97 MB
- Stars: 25
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bonak ![logo](assets/bonak.png)
Bonak is a research project that aims to formalize simplicial and cubical sets in Coq as a particular case of iterated parametricity translation. Prior to the start of the project, Hugo had worked out the rough type-theory of semi-cubical sets on pen-and-paper, and hypothesized that it could be formalized in Coq. The project started when Hugo and Ram met to test the hypothesis. They then met once a week for the next 2.5 years, to commit time to work on the project. The first commit was made on August 15, 2019, and the formalization of semi-simplicial and semi-cubical sets was completed on 22 February 2022.
The name _bonak_ comes from an imaginary monster in Daisy Johnson's novel [Everything Under](https://thebookerprizes.com/the-booker-library/books/everything-under), which was shortlisted for the Booker Prize in 2018. It happens to be an exciting read, and Ram had read the book at around the time this project started.
A pre-print of our paper can be found at [arXiv:2401.00512](https://arxiv.org/abs/2401.00512).
Some features of this project:
1. We do not make use of [HoTT](https://github.com/HoTT/HoTT), or any fancy libraries for that matter. Bonak is written is vanilla Coq, making use of the core standard library. In particular, we make heavy use of [SProp](https://coq.inria.fr/refman/addendum/sprop.html) for definitional proof irrelevance.
2. Bonak has led to many bugs being filed and fixed in core Coq. It pushes the boundaries of proof assistant technology, and can serve as a benchmark against which to improve core Coq features. Coq 8.20 is required to build the current version.
3. As the main contribution of Bonak is the Coq code, we have placed high emphasis on code cleanliness and readability. As a result, it's quite pleasant to step through the code, and have a succinct goal at all times.
4. Bonak is tiny! In ~900 lines of Coq code, we have managed to prove something remarkable. We did have a lot of false starts, and tried various approaches, before settling on what we have today.## Axioms
```coq
Axioms:
functional_extensionality_dep
: forall (A : Type) (B : A -> Type) (f g : forall x : A, B x),
(forall x : A, f x = g x) -> f = g
```Our approach is generic over the arity of the parametricity translation: we use functional extensionality for this, but it can, in principle, be done without this axiom for any fixed finite arity.
## Current status
`master` is a complete version of the formalization of semi-simplicial and semi-cubical sets. We are currently in the process of adding degeneracies, to yield simplicial and cubical sets.