From 316b123de766e9cba492b573be5b11c1ef25927c Mon Sep 17 00:00:00 2001 From: Viktor Kuncak <vkuncak@gmail.com> Date: Tue, 31 Jul 2012 17:56:14 +0200 Subject: [PATCH] recursion elim --- testcases/xplusone.scala | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 testcases/xplusone.scala diff --git a/testcases/xplusone.scala b/testcases/xplusone.scala new file mode 100644 index 000000000..94e9dfcc8 --- /dev/null +++ b/testcases/xplusone.scala @@ -0,0 +1,21 @@ +import leon.Utils._ + +object xplusone { + + def f(n : Int) : Int = { + if (n > 0) { + f(n-1) + 1 + } else 1 + } ensuring (rec => rec == n + 1) + + def Sf(n : Int, rec : Int) : Boolean = { + if (n > 0) { + val res = epsilon((x:Int) => true) + Sf(n - 1, res) + (rec == res + 1) + } else { + rec == 1 + } + } ensuring (_ == (rec == n + 1)) + +} -- GitLab