From 33b63e07356383cc62ddbb9a4365704cdd1b2cca Mon Sep 17 00:00:00 2001
From: Etienne Kneuss <etienne.kneuss@epfl.ch>
Date: Thu, 4 Dec 2014 17:08:15 +0100
Subject: [PATCH] Stop unfolding if grammar is closed, which it is for CEGLESS

---
 src/main/scala/leon/synthesis/rules/CegisLike.scala | 4 ++++
 src/main/scala/leon/synthesis/rules/Cegless.scala   | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/main/scala/leon/synthesis/rules/CegisLike.scala b/src/main/scala/leon/synthesis/rules/CegisLike.scala
index 12fd6299e..5d2e203f0 100644
--- a/src/main/scala/leon/synthesis/rules/CegisLike.scala
+++ b/src/main/scala/leon/synthesis/rules/CegisLike.scala
@@ -561,6 +561,10 @@ abstract class CEGISLike[T <% Typed](name: String) extends Rule(name) {
 
               solver1.assertCnstr(clause)
               solver2.assertCnstr(clause)
+
+              if (clauses.isEmpty) {
+                unfolding = maxUnfoldings
+              }
             }
 
             // Compute all programs that have not been excluded yet
diff --git a/src/main/scala/leon/synthesis/rules/Cegless.scala b/src/main/scala/leon/synthesis/rules/Cegless.scala
index 4d8ebb86c..d5fbb2619 100644
--- a/src/main/scala/leon/synthesis/rules/Cegless.scala
+++ b/src/main/scala/leon/synthesis/rules/Cegless.scala
@@ -13,7 +13,7 @@ import utils._
 import utils.ExpressionGrammars._
 
 case object CEGLESS extends CEGISLike[Label[String]]("CEGLESS") {
-  override val maxUnfoldings = 3;
+  override val maxUnfoldings = 1000;
 
   def getGrammar(sctx: SynthesisContext, p: Problem) = {
 
-- 
GitLab