diff --git a/testcases/ListWithSize.scala b/testcases/ListWithSize.scala
index fc1eac3a14e3ffde06c95472e8364c34e6cc1ab1..ee86f09792923f489ded2a30c7f06debd8f7f68e 100644
--- a/testcases/ListWithSize.scala
+++ b/testcases/ListWithSize.scala
@@ -44,6 +44,11 @@ object ListWithSize {
       append(l, Nil()) == l
     } ensuring(_ == true)
 
+    @induct
+    def allListsAreEmpty(l : List) : Boolean = {
+      allListsAreEmpty(l) && (l == Nil())
+    } ensuring (_ == true)
+
     def propAppend2(l : List) : Boolean = (l match {
       case Nil() => propAppend1(l)
       case Cons(x,xs) => (!propAppend1(xs) || propAppend1(l))
diff --git a/testcases/RedBlackTree.scala b/testcases/RedBlackTree.scala
index 0edbb64f9d3a0fc5ae999f19453855f0db7f7f87..9cb55c57463e45be93a370f0b0afdd2913ece1ca 100644
--- a/testcases/RedBlackTree.scala
+++ b/testcases/RedBlackTree.scala
@@ -15,13 +15,20 @@ object RedBlackTree {
     case Node(_, l, v, r) => content(l) ++ Set(v) ++ content(r)
   }
 
+  def size(t : Tree) : Int = t match {
+    case Empty() => 0
+    case Node(_, l, v, r) => size(l) + 1 + size(r)
+  }
+
   def ins(x : Int, t: Tree): Tree = (t match {
     case Empty() => Node(Red(),Empty(),x,Empty())
     case Node(c,a,y,b) =>
       if      (x < y)  balance(c, ins(x, a), y, b)
       else if (x == y) Node(c,a,y,b)
       else             balance(c,a,y,ins(x, b))
-  }) ensuring (content(_) == content(t) ++ Set(x))
+  }) ensuring (res => 
+          content(res) == content(t) ++ Set(x) &&
+          size(t) <= size(res) && size(res) < size(t) + 2)
 
   def add(x: Int, t: Tree): Tree = {
     makeBlack(ins(x, t))