From 5fb6c7d67dd2fb3a96646c9ef3d0a6ca147dc2b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ali=20Sinan=20K=C3=B6ksal?= <alisinan@gmail.com>
Date: Thu, 18 Nov 2010 15:29:29 +0000
Subject: [PATCH] inductive proof for size of append.

---
 testcases/ListWithSize.scala | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/testcases/ListWithSize.scala b/testcases/ListWithSize.scala
index 4e3be387f..a69deb6fb 100644
--- a/testcases/ListWithSize.scala
+++ b/testcases/ListWithSize.scala
@@ -72,6 +72,10 @@ object ListWithSize {
       case Cons(x,xs) => sizeAppend(xs, l2)
     }) ensuring(res => res && size(append(l1,l2)) == size(l1) + size(l2))
 
+    @induct
+    def sizeAppendInductive(l1 : List, l2 : List) : Boolean =
+      (size(append(l1, l2)) == size(l1) + size(l2)) holds
+
     // proved with unrolling=4
     def concat(l1: List, l2: List) : List = concat0(l1, l2, Nil()) 
      // ensuring(content(_) == content(l1) ++ content(l2))
-- 
GitLab