All the code I've ever written in Ltac2
  • Rocq Prover 97.2%
  • Makefile 2.8%
Find a file
2021-01-19 10:22:31 -06:00
src Remove use of omega 2021-01-19 10:22:31 -06:00
.gitignore Switch to a proper build setup 2020-02-08 10:04:41 -05:00
.travis.yml Use opaque binder interface 2020-03-19 10:05:56 -05:00
_CoqProject Switch to a proper build setup 2020-02-08 10:04:41 -05:00
Makefile Switch to a proper build setup 2020-02-08 10:04:41 -05:00
README.md Link to Ltac2 tutorial in README 2020-03-30 13:45:57 -05:00

Experiments with Ltac2

Build Status

You might also want to look at an Ltac2 Tutorial that I wrote.

string.v

Implements conversion from Gallina strings to Gallina identifiers, and exports this functionality to Ltac1.

matching.v

An example of matching over the goal and manipulating hypotheses.

deex.v

A tactic that destructs exists in the hypotheses and preserves existing names. Illustrates getting identifiers from binders, passing ident variables to primitive tactics, and generating fresh names.

Ltac2Lib.v

A library that gives enough Ltac1 functionality to make Software Foundations work. Includes a comment explaining how to handle some other incompatibilities which can't be fixed with code (or at least I don't know how to).

Demonstrates how to wrap Ltac1 with Ltac2 tactics. This is more complicated than using Ltac1 from an Ltac2 proof script, where ltac1:(...) around the original code usually works, because the wrapper has to be a closed value.

playground.v

Assorted experiments from trying to do anything with Ltac2.