Commit b863b045 authored by Ralf Jung's avatar Ralf Jung

tactics: rename auto_proper => auto_equiv

parent 4653cb6d
Pipeline #2907 passed with stage
in 9 minutes and 25 seconds
...@@ -292,9 +292,9 @@ Ltac f_equiv := ...@@ -292,9 +292,9 @@ Ltac f_equiv :=
end. end.
(** auto_proper solves goals of the form "f _ = f _", for any relation and any (** auto_proper solves goals of the form "f _ = f _", for any relation and any
number of arguments, by repeatedly apply f_equiv and handling trivial cases. number of arguments, by repeatedly applying f_equiv and handling trivial cases.
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. *)
Ltac auto_proper := Ltac auto_equiv :=
(* Deal with "pointwise_relation" *) (* Deal with "pointwise_relation" *)
repeat lazymatch goal with repeat lazymatch goal with
| |- pointwise_relation _ _ _ _ => intros ? | |- pointwise_relation _ _ _ _ => intros ?
...@@ -302,10 +302,10 @@ Ltac auto_proper := ...@@ -302,10 +302,10 @@ Ltac auto_proper :=
(* Normalize away equalities. *) (* Normalize away equalities. *)
simplify_eq; simplify_eq;
(* repeatedly apply congruence lemmas and use the equalities in the hypotheses. *) (* repeatedly apply congruence lemmas and use the equalities in the hypotheses. *)
try (f_equiv; fast_done || auto_proper). try (f_equiv; fast_done || auto_equiv).
(** solve_proper solves goals of the form "Proper (R1 ==> R2)", for any (** solve_proper solves goals of the form "Proper (R1 ==> R2)", for any
number of relations. All the actual work is done by f_equiv; number of relations. All the actual work is done by auto_equiv;
solve_proper just introduces the assumptions and unfolds the first solve_proper just introduces the assumptions and unfolds the first
head symbol. *) head symbol. *)
Ltac solve_proper := Ltac solve_proper :=
...@@ -328,7 +328,7 @@ Ltac solve_proper := ...@@ -328,7 +328,7 @@ Ltac solve_proper :=
| |- ?R (?f _ _) (?f _ _) => unfold f | |- ?R (?f _ _) (?f _ _) => unfold f
| |- ?R (?f _) (?f _) => unfold f | |- ?R (?f _) (?f _) => unfold f
end; end;
solve [ auto_proper ]. solve [ auto_equiv ].
(** The tactic [intros_revert tac] introduces all foralls/arrows, performs tac, (** The tactic [intros_revert tac] introduces all foralls/arrows, performs tac,
and then reverts them. *) and then reverts them. *)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment