From 99ecf1d7222d7167f533f63ee469cfbb4df36963 Mon Sep 17 00:00:00 2001
From: Manos Koukoutos <emmanouil.koukoutos@epfl.ch>
Date: Tue, 22 Sep 2015 18:24:12 +0200
Subject: [PATCH] Treat Forall in instantiateType

---
 src/main/scala/leon/purescala/TypeOps.scala | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/main/scala/leon/purescala/TypeOps.scala b/src/main/scala/leon/purescala/TypeOps.scala
index 0e7493018..f64c05219 100644
--- a/src/main/scala/leon/purescala/TypeOps.scala
+++ b/src/main/scala/leon/purescala/TypeOps.scala
@@ -300,6 +300,14 @@ object TypeOps {
             val mapping = args.map(_.id) zip newArgs.map(_.id)
             Lambda(newArgs, rec(idsMap ++ mapping)(body)).copiedFrom(l)
 
+          case f @ Forall(args, body) =>
+            val newArgs = args.map { arg =>
+              val tpe = tpeSub(arg.getType)
+              ValDef(freshId(arg.id, tpe))
+            }
+            val mapping = args.map(_.id) zip newArgs.map(_.id)
+            Forall(newArgs, rec(idsMap ++ mapping)(body)).copiedFrom(f)
+
           case p @ Passes(in, out, cases) =>
             val (newIn, newCases) = onMatchLike(in, cases)
             passes(newIn, srec(out), newCases).copiedFrom(p)
-- 
GitLab