aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proofs/logic.ml8
1 files changed, 7 insertions, 1 deletions
diff --git a/proofs/logic.ml b/proofs/logic.ml
index da62c1036c..e9e1882f87 100644
--- a/proofs/logic.ml
+++ b/proofs/logic.ml
@@ -569,7 +569,13 @@ let prim_refiner r sigma goal =
(* Util *)
let rec rebind id1 id2 = function
| [] -> []
- | id::l -> if id = id1 then id2::l else id::(rebind id1 id2 l)
+ | id::l ->
+ if id = id1 then id2::l else
+ let l' = rebind id1 id2 l in
+ if id = id2 then
+ (* TODO: find a more elegant way to hide a variable *)
+ (id_of_string "_@")::l'
+ else id::l'
let prim_extractor subfun vl pft =
let cl = pft.goal.evar_concl in