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

Write a How-to reason about intrinsic syntax using Equations #57

Open
thomas-lamiaux opened this issue Oct 14, 2024 · 0 comments
Open
Labels
documentation Improvements or additions to documentation Wish Wish for Tutorial or How-to guides

Comments

@thomas-lamiaux
Copy link
Collaborator

thomas-lamiaux commented Oct 14, 2024

Write a up to date "How-to reason about intrinsic syntax using Equations" explaining reasoning about intrinsic syntax as usually done in agda, explaining the advantages of Equations and Coq tactic mode.
A good example could be for a (potentially simplified) version of https://dl.acm.org/doi/pdf/10.1145/3158104 that was already ported by Mathieu Sozeau https://github.com/mattam82/Coq-Equations/blob/main/examples/definterp.v

This is a port of the first part of "Intrinsically-Typed Definitional Interpreters for Imperative Languages", Poulsen, Rouvoet, Tolmach, Krebbers and Visser. POPL'18.
It uses well-typed and well-scoped syntax and a monad indexed over an indexed set of stores to define an interpreter for an imperative programming language.
This showcases the use of dependent pattern-matching and pattern-matching lambdas in Equations. We implement a variant where store extension is resolved using type class resolution as well as the dependent-passing style version.

@thomas-lamiaux thomas-lamiaux added documentation Improvements or additions to documentation Wish Wish for Tutorial or How-to guides labels Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation Wish Wish for Tutorial or How-to guides
Projects
Development

No branches or pull requests

1 participant