Skip to content

Commit 2816789

Browse files
committed
Merge branch 'askrcv' of github.com:vellvm/ctrees into askrcv
2 parents 8276517 + 2c6b639 commit 2816789

13 files changed

Lines changed: 325 additions & 290 deletions

File tree

.envrc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
use flake
2+
unset COQPATH

.github/workflows/nix-build.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: "Build ctrees under nix"
2+
on:
3+
pull_request:
4+
push:
5+
jobs:
6+
tests:
7+
strategy:
8+
matrix:
9+
os:
10+
- ubuntu-latest
11+
runs-on: ${{ matrix.os }}
12+
permissions:
13+
id-token: "write"
14+
contents: "read"
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: DeterminateSystems/nix-installer-action@v19
18+
- uses: DeterminateSystems/magic-nix-cache-action@v13
19+
- uses: DeterminateSystems/flake-checker-action@v12
20+
- name: Run nix build
21+
run: nix build .

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Choice Trees
2+
[![Docker CI](https://github.com/vellvm/ctrees/workflows/Docker%20CI/badge.svg?branch=dev)](https://github.com/vellvm/ctrees/actions?query=workflow:"Docker%20CI")
3+
[![Nix](https://github.com/vellvm/ctrees/actions/workflows/nix-build.yml/badge.svg)](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+

Readme.md

Lines changed: 0 additions & 52 deletions
This file was deleted.

TODO.md

Lines changed: 0 additions & 110 deletions
This file was deleted.

coq-ctree.opam

Lines changed: 0 additions & 41 deletions
This file was deleted.

dune-project

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(lang dune 3.8)
22
(using coq 0.7)
3-
(name coq-ctree)
3+
(name rocq-ctree)
44

55
(license "MIT")
66
(authors "Nicolas Chappe" "Paul He" "Ludovic Henrio" "Yannick Zakowski" "Steve Zdancewic")
@@ -11,14 +11,25 @@
1111
(generate_opam_files true)
1212

1313
(package
14-
(name coq-ctree)
14+
(name rocq-ctree)
1515
(synopsis "Library for representing recursive, non-deterministic and impure programs with equational reasoning")
16-
(version 0.1)
16+
(version 2.0-dev)
1717
(depends
18-
(coq (= 8.20.1))
18+
(rocq-core (>= 9.0))
19+
(rocq-stdlib (>= 9.0))
1920
(coq-ext-lib (>= 0.11.3))
20-
(coq-coinduction (= 1.20))
21-
(coq-relation-algebra (>= 1.7.11))
22-
(coq-equations (>= 1.2))
21+
(rocq-coinduction (>= 1.21))
22+
(rocq-relation-algebra (>= 1.8.0))
23+
(rocq-equations (>= 1.3.1))
2324
(coq-itree (>= 5.0)))
25+
(tags (
26+
"category:CS/Semantics and Compilation/Semantics"
27+
"category:CS/Concurrency/Theory of concurrent systems"
28+
"keyword:simulation"
29+
"keyword:bisimilarity"
30+
"keyword:coinduction up-to"
31+
"keyword:process algebra"
32+
"keyword:cooperative multithreading"
33+
"logpath:CTree"
34+
))
2435
)

0 commit comments

Comments
 (0)