Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plans for formalizing the type system and implementation #39

Open
brendanzab opened this issue Apr 10, 2018 · 1 comment
Open

Plans for formalizing the type system and implementation #39

brendanzab opened this issue Apr 10, 2018 · 1 comment

Comments

@brendanzab
Copy link
Member

brendanzab commented Apr 10, 2018

Had a nice chat with @pythonesque on Twitter:

I think at this point most people involved in Coq development, at least, agree that a majority of the stuff in it should be in a proof assistant (maybe should have been from the beginning). I strongly recommend you try to prove as much as you possibly can; it'll save you later.

https://twitter.com/awesomeintheory/status/983592526232932352

Apparently lots of the trouble comes in the form of optimizations to the type checking algorithm.

I think it might make sense in the short term to try to keep the implementation as close to the syntax-directed algorithm described in the appendix of the book. For the short term our programs should be small, and speed should be less of a concern for us.

As a precaution, we should also try to ensure certain aspects of our implementation avoid known trouble areas, for example using implicit substitutions, and building up a tangle of mutually recusive definitions/modules/types (although that can be hard to avoid at times in dependent type systems).

In parallel we could:

  1. Define the declarative semantics (non-syntax-directed) and prove soundness theorems about that
  2. Ensure that the syntax directed semantics match the properties of the declarative semantics
  3. Using something fancy like Iris to design an imperative, optimized version of the type checker
  4. Ensure that the optimized version matches the properties of the declarative semantics as well

Then we could start carefully porting over the optimizations to the Rust implementation.

Resources

Papers

Projects

@brendanzab brendanzab changed the title Plans for formlizing the type system and implementation Plans for formalizing the type system and implementation Apr 13, 2018
brendanzab added a commit that referenced this issue Jun 12, 2018
@brendanzab
Copy link
Member Author

brendanzab commented Aug 21, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant