From d3c2c3e8f895792985130a8a1b93bcae66fe2fad Mon Sep 17 00:00:00 2001
From: Ralf Jung <jung@mpi-sws.org>
Date: Thu, 25 Feb 2016 12:01:39 +0100
Subject: [PATCH] more f_equiv work.

---
 theories/tactics.v | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/theories/tactics.v b/theories/tactics.v
index ce536877..6f9cf631 100644
--- a/theories/tactics.v
+++ b/theories/tactics.v
@@ -236,17 +236,17 @@ Ltac f_equiv :=
   try lazymatch goal with
     | |- pointwise_relation _ _ _ _ => intros ?
     end;
+  (* Normalize away equalities. *)
+  subst;
   (* repeatedly apply congruence lemmas and use the equalities in the hypotheses. *)
   first [ reflexivity | assumption | symmetry; assumption |
           match goal with
           (* We support matches on both sides, *if* they concern the same
-             or provably equal variables.
+             variable.
              TODO: We should support different variables, provided that we can
              derive contradictions for the off-diagonal cases. *)
           | |- ?R (match ?x with _ => _ end) (match ?x with _ => _ end) =>
             destruct x; f_equiv
-          | |- ?R (match ?x with _ => _ end) (match ?y with _ => _ end) =>
-            subst y; f_equiv
           (* First assume that the arguments need the same relation as the result *)
           | |- ?R (?f ?x) (?f _) =>
             let H := fresh "Proper" in
-- 
GitLab