A Coq plugin that provides a tactic that iterates over various collections of terms. For example,
Create HintDb my_lemmas.
Hint Resolve lem1 lem2 : my_lemmas.
Ltac the_tactic :=
let k lem := idtac lem in
foreach [ db:my_lemmas ] k.
(* OUTPUT:
lem1
lem2
*)
There are three versions of the iterator
foreach [ .. ] k
combines the invocations ofk
using;
first_of [ .. ] k
combines the invocations ofk
in the same way afirst
plus_of [ .. ] k
combines the invocations ofk
using+
And there are several types of collections:
*|-
iterates premises bottom-to-top by defaultrev c
reverses the iteration ofc
db:h
iterates the hints inside the hint databaseh
Please submit bugs and feature requests to the github issue tracker.
Pull requests are also welcome.
Make sure you added the Coq repository:
opam repo add coq-released https://coq.inria.fr/opam/released
and run:
opam install coq-ltac-iter
You can run:
make install
to install this ltac-iter.