diff options
author | qunyanm <unknown> | 2015-05-29 16:29:15 -0700 |
---|---|---|
committer | qunyanm <unknown> | 2015-05-29 16:29:15 -0700 |
commit | 10a8896ae40fd918abbb8caa616ac6ee0876ac1d (patch) | |
tree | 585bd8985ef218bacfcd8fc90771f57667fbc0aa /Test/dafny0 | |
parent | 01204bd7e22042ccb335dc885d2f66cdbe25a0aa (diff) |
Add an infinite set collection type.
Diffstat (limited to 'Test/dafny0')
-rw-r--r-- | Test/dafny0/ISets.dfy | 40 | ||||
-rw-r--r-- | Test/dafny0/ISets.dfy.expect | 2 |
2 files changed, 42 insertions, 0 deletions
diff --git a/Test/dafny0/ISets.dfy b/Test/dafny0/ISets.dfy new file mode 100644 index 00000000..bb0230f4 --- /dev/null +++ b/Test/dafny0/ISets.dfy @@ -0,0 +1,40 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
+ghost method M()
+{
+ ghost var s := iset{2};
+ // test "in
+ if(2 in s)
+ {
+ }
+ else
+ { assert false; }
+ // test "!in"
+ if(3 !in s)
+ {
+ }
+ else
+ { assert false; }
+
+ if(s == iset{2})
+ {
+ }
+ else
+ { assert false; }
+}
+
+ghost method m1() {
+ var s1:iset<int> := iset{}; // the empty set
+ var s2 := iset{1, 2, 3}; // set contains exactly 1, 2, and 3
+ assert s2 == iset{1,1,2,3,3,3,3}; // same as before
+ var s3, s4 := iset{1,2}, iset{1,4};
+
+ assert s2 + s4 == iset{1,2,3,4}; // set union
+ assert s2 * s3 == iset{1,2} && s2 * s4 == iset{1}; // set intersection
+ assert s2 - s3 == iset{3}; // set difference
+
+ assert (iset x | x in s2 :: x+1) == iset{2,3,4}; // set comprehension
+}
+
+
diff --git a/Test/dafny0/ISets.dfy.expect b/Test/dafny0/ISets.dfy.expect new file mode 100644 index 00000000..73ba063c --- /dev/null +++ b/Test/dafny0/ISets.dfy.expect @@ -0,0 +1,2 @@ +
+Dafny program verifier finished with 4 verified, 0 errors
|