summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Rustan Leino <leino@microsoft.com>2011-10-26 19:14:30 -0700
committerGravatar Rustan Leino <leino@microsoft.com>2011-10-26 19:14:30 -0700
commit736bffc734c9c5d0245d6c483647b43add1ce13a (patch)
treee8d9c3ef0aba028dcb8d03355f89acc0c9275522
parent5018e840af4b3dd743ddee1f3f47f23faeadb94d (diff)
Dafny: Commented out SnapshotableTrees.Node.FunctionalInsert while performance issues with the prover and going into SMTLib2 mode are being investigated.
-rw-r--r--Test/dafny2/Answer2
-rw-r--r--Test/dafny2/SnapshotableTrees.dfy6
2 files changed, 5 insertions, 3 deletions
diff --git a/Test/dafny2/Answer b/Test/dafny2/Answer
index 81db547b..cc2e8acb 100644
--- a/Test/dafny2/Answer
+++ b/Test/dafny2/Answer
@@ -1,7 +1,7 @@
-------------------- SnapshotableTrees.dfy --------------------
-Dafny program verifier finished with 37 verified, 0 errors
+Dafny program verifier finished with 36 verified, 0 errors
-------------------- TreeBarrier.dfy --------------------
diff --git a/Test/dafny2/SnapshotableTrees.dfy b/Test/dafny2/SnapshotableTrees.dfy
index 3386b123..f711e758 100644
--- a/Test/dafny2/SnapshotableTrees.dfy
+++ b/Test/dafny2/SnapshotableTrees.dfy
@@ -250,6 +250,7 @@ class Node
0 <= pos < |r.Contents| == |n.Contents| + 1 &&
r.Contents == n.Contents[..pos] + [x] + n.Contents[pos..];
decreases if n == null then {} else n.Repr;
+/* Commented out while performance issues with the prover and going into SMTLib2 mode are being investigated.
{
if (n == null) {
r := new Node.Init(x);
@@ -259,11 +260,12 @@ class Node
assert n.left != null ==> n.data == n.Contents[|n.left.Contents|];
assert n.left == null ==> n.data == n.Contents[0];
left, pos := FunctionalInsert(n.left, x);
+ assert n.left == old(n.left);
if (left == n.left) {
r, pos := n, -1;
} else {
+ assert n.left != null ==> forall i :: 0 <= i < |n.left.Contents| ==> n.Contents[i] < n.data;
assert forall i :: 0 <= i < |left.Contents| ==> left.Contents[i] < n.data;
- assert n.right != null ==> forall i :: 0 <= i < |n.right.Contents| ==> n.data < n.right.Contents[i];
r := new Node.Build(left, n.data, n.right);
}
} else if (n.data < x) {
@@ -285,7 +287,7 @@ class Node
r, pos := n, -1;
}
}
-
+*/
method MutatingInsert(x: int) returns (ghost pos: int)
requires Valid();
modifies Repr;