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 [ .. ] kcombines the invocations ofkusing;first_of [ .. ] kcombines the invocations ofkin the same way afirstplus_of [ .. ] kcombines the invocations ofkusing+
And there are several types of collections:
*|-iterates premises bottom-to-top by defaultrev creverses the iteration ofcdb:hiterates 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.