@@ -18,39 +18,34 @@ make -f CoqMakefile
1818cabal run agda2lambox -- --out-dir build -itest test/Nat.agda
1919```
2020
21+ ## Implemented
22+
23+ - Compilation to untyped λ□ programs:
24+ - Mutually-defined datatypes and record types.
25+ - Mutually-defined functions.
26+ - Importing modules.
27+ The backend transitively compiles all required definitions, and only those.
28+ - Nat literals.
29+
2130## TODO
2231
23- - [x] Fix generation of Coq code
24- - [x] Add Coq pretty-printing
25- - [x] Support mutual definitions
26- - [x] Support one-inductive
27- - [x] Add pragma for program selection
28- - [x] Make pretty-printer prettier
29- - [x] Ensure well-formedness of generated programs inside Coq
30- - [x] Make well-formedness check faster by splitting it into boolean and propositional
31- - [x] Evaluate λ□ programs from inside Coq to start testing
32- - [x] Using the λ□-Mut from CertiCoq
33- - [x] Support mutual inductives
34- - [x] Refactor backend
35- - Get rid of the Convert class.
36- - Possibly put everything in a single module
37- - Unify compilation of records and datatypes
38- - [x] Support (one-inductive) records
39- - [x] Properly translate projections in terms (by actually generating projections)
40- - [x] Support mutual (possibly inductive) records
41- - [x] Traverse multiple files to get all (required) definitions
42- - [ ] Support (nat) literals
4332- [ ] Better error-reporting
4433- [ ] Check support for Agda-specific edge cases
4534 - [x] Pattern-matching lambdas
4635 - [x] With-generated lambdas
4736 - [ ] Module applications
4837 - [ ] Projection-like
4938- [ ] Support primitives (ints and floats)
39+
5040- [ ] Setup compilation to Wasm/Rust using Certicoq
51- - [ ] May require generating λ□ terms for an older MetaCoq
5241- [ ] Setup proper testing infrastructure
5342
43+ ## Icebox
44+
45+ Things that ought to be implemented, but not right now.
46+
47+ - [ ] Caching of compiled modules.
48+
5449## References
5550
5651- [ The MetaCoq Project] ( https://github.com/MetaCoq/metacoq )
0 commit comments