summaryrefslogtreecommitdiff
path: root/Test/dafny0/Computations.dfy
diff options
context:
space:
mode:
authorGravatar Nada Amin <namin@alum.mit.edu>2014-03-19 19:08:04 +0100
committerGravatar Nada Amin <namin@alum.mit.edu>2014-03-19 19:08:04 +0100
commit73d20fd1f40d380f10a4a62cb8853137e340514a (patch)
tree859ce823e99fddc674757fe5d50d93b2cd11ae5c /Test/dafny0/Computations.dfy
parent24d83b6c4fde22c8fefad80618be22d383f6d6d0 (diff)
Propagate literals through equality operations.
Diffstat (limited to 'Test/dafny0/Computations.dfy')
-rw-r--r--Test/dafny0/Computations.dfy25
1 files changed, 23 insertions, 2 deletions
diff --git a/Test/dafny0/Computations.dfy b/Test/dafny0/Computations.dfy
index d3c42af5..0481fe96 100644
--- a/Test/dafny0/Computations.dfy
+++ b/Test/dafny0/Computations.dfy
@@ -155,8 +155,29 @@ function power(b: int, n: nat): int
{
if (n==0) then 1 else b*power(b, n-1)
}
-
ghost method test_power()
ensures power(power(2, 3), 1+power(2, 2))==32768;
{
-} \ No newline at end of file
+}
+
+function fib(n: nat): nat
+{
+ if (n<2) then n else fib(n-1)+fib(n-2)
+}
+ghost method test_fib()
+ ensures fib(12)==144;
+{
+}
+ghost method test_fib1(k: nat)
+ ensures k==12 ==> fib(k)==144;
+{
+}
+ghost method test_fib2(k: nat)
+ ensures 12<=k && k<=12 ==> fib(k)==144;
+{
+}
+ghost method test_fib3(k: nat, m: nat)
+{
+ var y := 12;
+ assert y <= k && k < y + m && m == 1 ==> fib(k)==144;
+}