Skip to content
Snippets Groups Projects
Commit c41e167b authored by Ralf Jung's avatar Ralf Jung
Browse files

Merge branch 'master' of gitlab.mpi-sws.org:FP/iris-coq

parents 6fe27bb5 a54a596b
No related branches found
No related tags found
No related merge requests found
...@@ -228,7 +228,6 @@ Ltac setoid_subst := ...@@ -228,7 +228,6 @@ Ltac setoid_subst :=
| H : @equiv ?A ?e _ ?x |- _ => symmetry in H; setoid_subst_aux (@equiv A e) x | H : @equiv ?A ?e _ ?x |- _ => symmetry in H; setoid_subst_aux (@equiv A e) x
end. end.
(** f_equiv solves goals of the form "f _ = f _", for any relation and any (** f_equiv solves goals of the form "f _ = f _", for any relation and any
number of arguments, by looking for appropriate "Proper" instances. number of arguments, by looking for appropriate "Proper" instances.
If it cannot solve an equality, it will leave that to the user. *) If it cannot solve an equality, it will leave that to the user. *)
...@@ -306,6 +305,13 @@ Ltac solve_proper := ...@@ -306,6 +305,13 @@ Ltac solve_proper :=
end; end;
solve [ f_equiv ]. solve [ f_equiv ].
(** The tactic [intros_revert tac] introduces all foralls/arrows, performs tac,
and then reverts them. *)
Ltac intros_revert tac :=
lazymatch goal with
| |- _, _ => let H := fresh in intro H; intros_revert tac; revert H
| |- _ => tac
end.
(** Given a tactic [tac2] generating a list of terms, [iter tac1 tac2] (** Given a tactic [tac2] generating a list of terms, [iter tac1 tac2]
runs [tac x] for each element [x] until [tac x] succeeds. If it does not runs [tac x] for each element [x] until [tac x] succeeds. If it does not
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment