summaryrefslogtreecommitdiff
path: root/Chalice/refinements/Pick.chalice
diff options
context:
space:
mode:
authorGravatar kyessenov <unknown>2010-08-19 21:10:41 +0000
committerGravatar kyessenov <unknown>2010-08-19 21:10:41 +0000
commitef633e71d0b9baae12ea475281fa8a29c4329574 (patch)
tree37736b9ffc86bf451cc658def671e7e25079540c /Chalice/refinements/Pick.chalice
parentcab92c658d8ea45da647de99dc8250d3cbc28801 (diff)
Chalice: more regression tests; cosmetic changes to code
Diffstat (limited to 'Chalice/refinements/Pick.chalice')
-rw-r--r--Chalice/refinements/Pick.chalice28
1 files changed, 28 insertions, 0 deletions
diff --git a/Chalice/refinements/Pick.chalice b/Chalice/refinements/Pick.chalice
new file mode 100644
index 00000000..7df2f90d
--- /dev/null
+++ b/Chalice/refinements/Pick.chalice
@@ -0,0 +1,28 @@
+class Pick0 {
+ method pick(s: seq<int>) returns (x)
+ requires |s| > 0;
+ {
+ var x [x in s]
+ }
+}
+
+class Pick1 refines Pick0 {
+ transforms pick(s: seq<int>) returns (x)
+ {
+ replaces x by {x := s[0]}
+ }
+}
+
+class Pick2 refines Pick0 {
+ transforms pick(s: seq<int>) returns (x)
+ {
+ replaces * by {x := s[|s|-1]}
+ }
+}
+
+class Pick3 refines Pick0 {
+ transforms pick(s: seq<int>) returns (x)
+ {
+ replaces x by {x := s[1]}
+ }
+}