An open API service indexing awesome lists of open source software.

https://github.com/innovativeinventor/tree-logics

[WIP] Formally verified, shallow embeddings of various tree logics, in Coq, along with some consistency, completeness, and soundness proofs. For funsies.
https://github.com/innovativeinventor/tree-logics

Last synced: about 2 months ago
JSON representation

[WIP] Formally verified, shallow embeddings of various tree logics, in Coq, along with some consistency, completeness, and soundness proofs. For funsies.

Awesome Lists containing this project

README

          

## tree-logics
This repo is an attempt to create various formally verified shallow embeddings of sentential logic in Coq, following along [PHIL 454](https://courses.illinois.edu/schedule/2022/spring/PHIL/454).
The goal is to build up (totally equivalent!) consistency and soundness proofs to explore various features of Coq.
In particular, there will be some ltac automation (in the manner of [CPDT](https://mitpress.mit.edu/books/certified-programming-dependent-types)).

For now, no external Coq libs are used -- just vanilla Coq.
This may change in the future.
See [sl.v](/sl.v) for the proofs/code.

## TODOs
Ongoing/Planned:
- [x] construct shallow embeddings of classical sentential logic (assume decidability)
- [x] prove demorgan, double-negation elim, negated conditional are sound
- [x] prove the composition of demorgan, double-negation, and negated conditional elim are sound (wrt the shallow embeddings) (i.e. "driving negations")
- [x] visual exporter of the embedded two-sided proof system
- [ ] optimization passes to obtain smaller, more concise proofs

- [ ] prove that the implementation of "driving negations" results in only negated atomics (correctness)
- [ ] embed [two-sided proof system](https://doi.org/10.5840/teachphil2019116101)
- [ ] prove soundness and completeness of two-sided proof system
- [ ] embed natural deduction (as rewrite rules?)
- [ ] prove soundness and completeness of natural deduction

Considering:
- [ ] Extract formally verified two-sided proof system as a calculator from Coq (and maybe expose as a web app)