aboutsummaryrefslogtreecommitdiffhomepage
path: root/test-suite/success
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2015-03-10 15:31:12 +0100
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2015-07-27 14:02:32 +0200
commit1674b11594a7b4daf24d99a0acdffc54c9999198 (patch)
tree991f74212c1b1d2398a09c9e8dd43f71017d6564 /test-suite/success
parent70e87f6e67198b1340dfffe1e2a7d741706125f9 (diff)
Add an Iterative Deepening search strategy to typeclass resolution.
Diffstat (limited to 'test-suite/success')
-rw-r--r--test-suite/success/Typeclasses.v23
1 files changed, 22 insertions, 1 deletions
diff --git a/test-suite/success/Typeclasses.v b/test-suite/success/Typeclasses.v
index 30a2a7429..d6e590af3 100644
--- a/test-suite/success/Typeclasses.v
+++ b/test-suite/success/Typeclasses.v
@@ -57,4 +57,25 @@ Section sec.
let's try to get rid of the intermediate constant foo.
Surely we can just expand it inline, right? Wrong!: *)
Check U (fun x => e x) _.
-End sec. \ No newline at end of file
+End sec.
+
+Module IterativeDeepening.
+
+ Class A.
+ Class B.
+ Class C.
+
+ Instance: B -> A | 0.
+ Instance: C -> A | 0.
+ Instance: C -> B -> A | 0.
+ Instance: A -> A | 0.
+
+ Goal C -> A.
+ intros.
+ Set Typeclasses Debug.
+ Fail Timeout 1 typeclasses eauto.
+ Set Typeclasses Iterative Deepening.
+ typeclasses eauto.
+ Qed.
+
+End IterativeDeepening.