From 0515894d328e74bbee85d53cae539c98edf7ba23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Blanc?= <regwblanc@gmail.com> Date: Sun, 6 May 2012 19:25:57 +0000 Subject: [PATCH] example that illustrates bug with if condition, now fixed --- testcases/regression/valid/Nested8.scala | 43 ++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 testcases/regression/valid/Nested8.scala diff --git a/testcases/regression/valid/Nested8.scala b/testcases/regression/valid/Nested8.scala new file mode 100644 index 000000000..e8a05e40e --- /dev/null +++ b/testcases/regression/valid/Nested8.scala @@ -0,0 +1,43 @@ +import leon.Utils._ + +object Nested8 { + + def foo(a: Int): Int = { + require(a > 0) + + def bar(b: Int): Int = { + if(a < b) { + def rec(c: Int): Int = { + require(c > 0) + c + b + } ensuring(_ > 0) + rec(2) + } else 3 + } + bar(1) + } ensuring(_ > 0) + + /* + def partitioned(a: Map[Int, Int], size: Int, l1: Int, u1: Int, l2: Int, u2: Int): Boolean = { + require(l1 >= 0 && u1 < l2 && u2 < size) + if(l2 > u2 || l1 > u1) + true + else { + var i = l1 + var j = l2 + var isPartitionned = true + (while(i <= u1) { + j = l2 + (while(j <= u2) { + if(a(i) > a(j)) + isPartitionned = false + j = j + 1 + }) invariant(j >= l2 && i <= u1) + i = i + 1 + }) invariant(i >= l1) + isPartitionned + } + } + */ + +} -- GitLab