Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yiyunliu/ltac2-tutorial
A simple Ltac2 tutorial that covers the very basics.
https://github.com/yiyunliu/ltac2-tutorial
coq ltac2 tutorial
Last synced: 3 months ago
JSON representation
A simple Ltac2 tutorial that covers the very basics.
- Host: GitHub
- URL: https://github.com/yiyunliu/ltac2-tutorial
- Owner: yiyunliu
- Created: 2022-12-08T18:27:04.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-03-20T17:39:17.000Z (10 months ago)
- Last Synced: 2024-09-30T20:41:21.152Z (4 months ago)
- Topics: coq, ltac2, tutorial
- Language: Coq
- Homepage:
- Size: 21.5 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ltac2 tutorial
A simple `Ltac2` tutorial that is intended to supplement the official documentation with an extensive set of examples. You can find the rendered html version (still WIP) at [https://electriclam.com/ltac2/toc.html](https://electriclam.com/ltac2/toc.html).The code is known to compiles under Coq 8.16.0 and 8.18.0. If you are using an older version of Coq, certain standard library functions or language constructs might be missing (e.g. `Int.le` and `if`).
You can contribute by making pull requests or simply asking me to add you as a contributor. I'm still working to turn the comments in the Coq code into coqdoc.
- [tutorial0](theories/tutorial0.v) contains the basics of Ltac2. You'll learn about how to write and evaluate expressions, define algebraic data types, and interface with the API that allows you to manipulate the proof states and define tactics.
- [tutorial1](theories/tutorial1.v) showcases the proof by reflection technique described in [Cpdt.Reflection](http://adam.chlipala.net/cpdt/html/Cpdt.Reflection.html).
- [tutorial2](theories/tutorial2.v) is still WIP and is supposed to show how to write wrappers for Ltac1 tactics in Ltac2. The file uses Ltac1 tactics from the package [metalib](https://github.com/plclub/metalib) as an example, though eventually I'll replace the example with something that is self-contained and does not require any external dependencies.