diff options
author | Rustan Leino <leino@microsoft.com> | 2013-01-16 19:33:15 -0800 |
---|---|---|
committer | Rustan Leino <leino@microsoft.com> | 2013-01-16 19:33:15 -0800 |
commit | 678f36ea920b1be7c7633b9ab7a50672ad54c7b4 (patch) | |
tree | bccb63f1141697ca3fb57654bafef704eaf0b54f /Test/dafny0/CoinductiveProofs.dfy | |
parent | b47707c222e2d68fb27d4ace45f106e34b2b9f7f (diff) |
Removed the syntactic form copredicate #-form with the implicit argument.
Added syntactic support for codatatype #-form equalities.
Diffstat (limited to 'Test/dafny0/CoinductiveProofs.dfy')
-rw-r--r-- | Test/dafny0/CoinductiveProofs.dfy | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Test/dafny0/CoinductiveProofs.dfy b/Test/dafny0/CoinductiveProofs.dfy index ddb23b5b..47c5f262 100644 --- a/Test/dafny0/CoinductiveProofs.dfy +++ b/Test/dafny0/CoinductiveProofs.dfy @@ -153,3 +153,28 @@ comethod BadEquality1(n: int) { // error: postcondition does not hold
BadEquality1(n+1);
}
+
+// test that match statements/expressions get the correct assumption (which wasn't always the case)
+
+codatatype IList<T> = INil | ICons(head: T, tail: IList<T>);
+
+ghost method M(s: IList)
+{
+ match (s) {
+ case INil =>
+ assert s == INil;
+ case ICons(a, b) =>
+ assert s == ICons(a, b);
+ }
+}
+
+function G(s: IList): int
+{
+ match s
+ case INil =>
+ assert s == INil;
+ 0
+ case ICons(a, b) =>
+ assert s == ICons(a, b);
+ 0
+}
|