From 2aa844c9d024e34014b7efb27baa22797b4d079f Mon Sep 17 00:00:00 2001
From: Robbert Krebbers <mail@robbertkrebbers.nl>
Date: Sat, 1 Apr 2017 21:05:36 +0200
Subject: [PATCH] Let set_solver/set_unfold only touch Prop hyps.

This is needed to use coq-stdpp in developments with -type-in-type
as set_unfold will otherwise unify with any hyp, causing the
set_solver tactic to break.
---
 theories/collections.v | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/theories/collections.v b/theories/collections.v
index 8354bafd..c5d8cc8d 100644
--- a/theories/collections.v
+++ b/theories/collections.v
@@ -270,9 +270,13 @@ End set_unfold_list.
 Ltac set_unfold :=
   let rec unfold_hyps :=
     try match goal with
-    | H : _ |- _ =>
-       apply set_unfold_1 in H; revert H;
-       first [unfold_hyps; intros H | intros H; fail 1]
+    | H : ?P |- _ =>
+       lazymatch type of P with
+       | Prop =>
+         apply set_unfold_1 in H; revert H;
+         first [unfold_hyps; intros H | intros H; fail 1]
+       | _ => fail
+       end
     end in
   apply set_unfold_2; unfold_hyps; csimpl in *.
 
-- 
GitLab