diff --git a/testcases/BinarySearchTree.scala b/testcases/BinarySearchTree.scala
index 3966788867d2c5846ffe2ff3ea5de5e3be0b8ec2..c2e4566f4cf29de1fec89d33059a09797f5eb317 100644
--- a/testcases/BinarySearchTree.scala
+++ b/testcases/BinarySearchTree.scala
@@ -1,5 +1,5 @@
 import scala.collection.immutable.Set
-import scala.collection.immutable.Multiset
+// import scala.collection.immutable.Multiset
 
 object BinarySearchTree {
   sealed abstract class Tree
@@ -15,8 +15,7 @@ object BinarySearchTree {
   sealed abstract class Triple
   case class SortedTriple(min: Option, max: Option, sorted: Boolean) extends Triple
 
-  
-  def isSorted(tree: Tree): SortedTriple = tree match {
+   def isSorted(tree: Tree): SortedTriple = tree match {
     case Leaf() => SortedTriple(None(), None(), true)
     case Node(l,v,r) => isSorted(l) match {
       case SortedTriple(minl,maxl,sortl) => if (!sortl) SortedTriple(None(), None(), false)
@@ -140,7 +139,9 @@ object BinarySearchTree {
     res.left != Leaf() && res.right != Leaf()
   )
 
-  def contains(tree: Tree, value: Int): Boolean = tree match {
+  def contains(tree: Tree, value: Int): Boolean = {
+    require(isSorted(tree).sorted)
+    tree match {
     case Leaf() => false
     case n@Node(l, v, r) => if (v < value) {
       contains(r, value)
@@ -149,7 +150,7 @@ object BinarySearchTree {
     } else {
       true
     }
-  }
+  } } ensuring( _ || !(contents(tree) == contents(tree) ++ Set(value)))
 
   def contents(tree: Tree): Set[Int] = tree match {
     case Leaf() => Set.empty[Int]