diff options
author | Dan Liew <daniel.liew@imperial.ac.uk> | 2015-06-28 01:44:30 +0100 |
---|---|---|
committer | Dan Liew <daniel.liew@imperial.ac.uk> | 2015-06-28 01:44:30 +0100 |
commit | 962f8d5252b3f5ec4d19e0cd2a430934bd55cc6d (patch) | |
tree | 27d5f9b0d130c6c1a6758bc0b7456b0aa51e34e0 /Test/test20/Prog0.bpl | |
parent | e11d65009d0b4ba1327f5f5dd6b26367330611f0 (diff) |
Normalise line endings using a .gitattributes file. Unfortunately
this required that this commit globally modify most files. If you
want to use git blame to see the real author of a line use the
``-w`` flag so that whitespace changes are ignored.
Diffstat (limited to 'Test/test20/Prog0.bpl')
-rw-r--r-- | Test/test20/Prog0.bpl | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/Test/test20/Prog0.bpl b/Test/test20/Prog0.bpl index 26642737..512984dc 100644 --- a/Test/test20/Prog0.bpl +++ b/Test/test20/Prog0.bpl @@ -1,37 +1,37 @@ -// RUN: %boogie -noVerify "%s" > "%t"
-// RUN: %diff "%s.expect" "%t"
-// Let's test some Boogie 2 features ...
-
-type elements;
-
-type Field a;
-var heap : <a> [ref, Field a] a;
-
-const emptyset : <a> [a] bool;
-
-function union(<a> [a] bool, <a> [a] bool) returns (<a> [a] bool);
-
-axiom (forall x : <a> [a] bool, y : <a> [a] bool,
- z : int ::
- { union(x, y)[z] }
- union(x, y)[z] == (x[z] || y[z]));
-
-var tau : <a> [ref] int; // error: type variable has to occur in arguments
-
-axiom (forall x : int :: !emptyset[x]);
-
-// the more general version of the axiom that also uses type quantifiers
-
-axiom (forall<alpha>
- x : <a> [a] bool, y : <a> [a] bool,
- z : alpha ::
- { union(x, y)[z] }
- union(x, y)[z] == (x[z] || y[z]));
-
-axiom (forall<beta, alpha, beta> a:alpha, b:beta :: // error: variable bound twice
- a == b ==> (exists c:alpha :: c == b));
-
-axiom (forall<beta> a:alpha, b:beta :: // error: alpha is not declared
- a == b ==> (exists c:alpha :: c == b));
-
-type ref;
+// RUN: %boogie -noVerify "%s" > "%t" +// RUN: %diff "%s.expect" "%t" +// Let's test some Boogie 2 features ... + +type elements; + +type Field a; +var heap : <a> [ref, Field a] a; + +const emptyset : <a> [a] bool; + +function union(<a> [a] bool, <a> [a] bool) returns (<a> [a] bool); + +axiom (forall x : <a> [a] bool, y : <a> [a] bool, + z : int :: + { union(x, y)[z] } + union(x, y)[z] == (x[z] || y[z])); + +var tau : <a> [ref] int; // error: type variable has to occur in arguments + +axiom (forall x : int :: !emptyset[x]); + +// the more general version of the axiom that also uses type quantifiers + +axiom (forall<alpha> + x : <a> [a] bool, y : <a> [a] bool, + z : alpha :: + { union(x, y)[z] } + union(x, y)[z] == (x[z] || y[z])); + +axiom (forall<beta, alpha, beta> a:alpha, b:beta :: // error: variable bound twice + a == b ==> (exists c:alpha :: c == b)); + +axiom (forall<beta> a:alpha, b:beta :: // error: alpha is not declared + a == b ==> (exists c:alpha :: c == b)); + +type ref; |