From ac4ad2f84e9105770d7c9c12451f6096f6bf2433 Mon Sep 17 00:00:00 2001
From: Nicolas Voirol <voirol.nicolas@gmail.com>
Date: Fri, 28 Oct 2016 14:24:52 +0200
Subject: [PATCH] Fixed quantifier template unrolling for deferred ground
 instantiations

---
 .../inox/solvers/unrolling/QuantificationTemplates.scala   | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/main/scala/inox/solvers/unrolling/QuantificationTemplates.scala b/src/main/scala/inox/solvers/unrolling/QuantificationTemplates.scala
index 8c1358805..a6cc13624 100644
--- a/src/main/scala/inox/solvers/unrolling/QuantificationTemplates.scala
+++ b/src/main/scala/inox/solvers/unrolling/QuantificationTemplates.scala
@@ -246,7 +246,12 @@ trait QuantificationTemplates { self: Templates =>
 
       for ((gen, qs) <- ignoredGrounds.toSeq if gen <= currentGeneration; q <- qs) {
         clauses ++= q.ensureGrounds
-        ignoredGrounds += gen -> (ignoredGrounds.getOrElse(gen, Set.empty) - q)
+        val remaining = ignoredGrounds.getOrElse(gen, Set.empty) - q
+        if (remaining.nonEmpty) {
+          ignoredGrounds += gen -> remaining
+        } else {
+          ignoredGrounds -= gen
+        }
       }
 
       clauses.toSeq
-- 
GitLab