|
| 1 | +# Choice Trees |
| 2 | +[](https://github.com/vellvm/ctrees/actions?query=workflow:"Docker%20CI") |
| 3 | +[](https://github.com/vellvm/ctrees/actions/workflows/nix-build.yml) |
| 4 | + |
| 5 | +We develop a cousin of Interaction Trees, dubbed _Choice Trees_, with native support for non-determinism. |
| 6 | + |
| 7 | +## Meta |
| 8 | + |
| 9 | +- Author(s): |
| 10 | + - Nicolas Chappe |
| 11 | + - Paul He |
| 12 | + - Ludovic Henrio |
| 13 | + - Eleftherios Ioannidis |
| 14 | + - Yannick Zakowski |
| 15 | + - Steve Zdancewic |
| 16 | +- License: MIT License |
| 17 | +- Compatible Rocq versions: 9.0 |
| 18 | +- Additional dependencies: |
| 19 | + - dune |
| 20 | + - [Extlib](https://github.com/coq-community/coq-ext-lib) |
| 21 | + - [InteractionTrees](https://github.com/DeepSpec/InteractionTrees) |
| 22 | + - [Equations](https://github.com/mattam82/Coq-Equations) |
| 23 | + - [Coinduction](https://github.com/damien-pous/coinduction) |
| 24 | + - [RelationAlgebra](https://github.com/damien-pous/relation-algebra) |
| 25 | +- Rocq namespace: `CTree` |
| 26 | + |
| 27 | +## Related papers |
| 28 | + |
| 29 | +- https://hal.science/hal-05154458 |
| 30 | +- https://dl.acm.org/doi/10.1145/3571254 (old) |
| 31 | + |
| 32 | +## Building instructions |
| 33 | + |
| 34 | +### Installing dependencies |
| 35 | + |
| 36 | +Installing the opam dependencies |
| 37 | +```shell |
| 38 | +opam install coq-ext-lib coq-itree coq-relation-algebra coq-coinduction coq-equations |
| 39 | +``` |
| 40 | + |
| 41 | +### Obtaining the project |
| 42 | + |
| 43 | +```shell |
| 44 | +git clone https://github.com/vellvm/ctrees |
| 45 | +cd ctrees |
| 46 | +``` |
| 47 | + |
| 48 | +### Building the project |
| 49 | + |
| 50 | +```shell |
| 51 | +dune build |
| 52 | +``` |
| 53 | + |
| 54 | +## Universe issue |
| 55 | + |
| 56 | +We currently unset locally universe checking in several places of the library. This is an annoying, but purely technical issue that affects in no way the soundness of our results. |
| 57 | + |
| 58 | +Given the complexity of the issue, and its root tracing back to other libraries (for instance, importing simultaneously some parts of the [Interaction Tree] library and of the [RelationAlgebra] library triggers a universe inconsistency), we project to tackle the issue as part of the future support in Rocq for alegbraic universes and the release of a universe polymorphic prelude. |
| 59 | + |
0 commit comments