From 6a146f673cfbc81c954d2ef56990af599e55102b Mon Sep 17 00:00:00 2001
From: Etienne Kneuss <ekneuss@gmail.com>
Date: Mon, 6 Jul 2015 13:43:49 +0200
Subject: [PATCH] If the test has outputs, use it to filter as well

---
 src/main/scala/leon/synthesis/rules/CEGISLike.scala | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/main/scala/leon/synthesis/rules/CEGISLike.scala b/src/main/scala/leon/synthesis/rules/CEGISLike.scala
index 8178cc6c8..bdd5e54d9 100644
--- a/src/main/scala/leon/synthesis/rules/CEGISLike.scala
+++ b/src/main/scala/leon/synthesis/rules/CEGISLike.scala
@@ -408,9 +408,16 @@ abstract class CEGISLike[T <% Typed](name: String) extends Rule(name) {
             // TODO: Test output value as well
             val envMap = bs.map(b => b -> BooleanLiteral(bValues(b))).toMap
 
-            val fi = FunctionInvocation(phiFd.typed, ex.ins)
-
-            evaluator.eval(fi, envMap)
+            ex match {
+              case InExample(ins) =>
+                val fi = FunctionInvocation(phiFd.typed, ins)
+                evaluator.eval(fi, envMap)
+
+              case InOutExample(ins, outs) =>
+                val fi = FunctionInvocation(cTreeFd.typed, ins)
+                val eq = equality(fi, tupleWrap(outs))
+                evaluator.eval(eq, envMap)
+            }
           }
       }
 
-- 
GitLab