From be71561e2a2b3a66e96c0d382eab0af1ab003d69 Mon Sep 17 00:00:00 2001
From: Samuel Gruetter <samuel.gruetter@epfl.ch>
Date: Wed, 3 Jun 2015 13:58:53 +0200
Subject: [PATCH] fix int2Nat function (was non-terminating for negative
 arguments)

---
 .../regression/verification/purescala/valid/Nat.scala        | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/test/resources/regression/verification/purescala/valid/Nat.scala b/src/test/resources/regression/verification/purescala/valid/Nat.scala
index 498373c4a..2c6b8724a 100644
--- a/src/test/resources/regression/verification/purescala/valid/Nat.scala
+++ b/src/test/resources/regression/verification/purescala/valid/Nat.scala
@@ -18,7 +18,10 @@ object Nat {
     case Succ(n1) => 1 + nat2Int(n1)
   }
 
-  def int2Nat(n: Int): Nat = if (n == 0) Zero() else Succ(int2Nat(n-1))
+  def int2Nat(n: Int): Nat = {
+    require(n >= 0)
+    if (n == 0) Zero() else Succ(int2Nat(n-1))
+  }
 
   def sum_lemma(): Boolean = {
     3 == nat2Int(plus(int2Nat(1), int2Nat(2)))
-- 
GitLab