From 677619075af8ef30793a2a2e078a764b21be5913 Mon Sep 17 00:00:00 2001 From: Clément Pit--Claudel Date: Fri, 28 Aug 2015 22:50:37 -0700 Subject: Add a small test from a discussion with Bryan --- Test/dafny0/fun-with-slices.dfy | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Test/dafny0/fun-with-slices.dfy (limited to 'Test/dafny0/fun-with-slices.dfy') diff --git a/Test/dafny0/fun-with-slices.dfy b/Test/dafny0/fun-with-slices.dfy new file mode 100644 index 00000000..3d8da242 --- /dev/null +++ b/Test/dafny0/fun-with-slices.dfy @@ -0,0 +1,19 @@ +// RUN: %dafny /compile:0 /print:"%t.print" /dprint:"%t.dprint" "%s" > "%t" +// RUN: %diff "%s.expect" "%t" + +// This test was contributed by Bryan. It has shown some instabilities in the past. + +method seqIntoArray(s: seq, a: array, index: nat) + requires a != null + requires index + |s| <= a.Length + modifies a + ensures a[..] == old(a[0..index]) + s + old(a[index + |s|..]) { + var i := index; + + while i < index + |s| + invariant index <= i <= index + |s| <= a.Length + invariant a[..] == old(a[0..index]) + s[0..(i-index)] + old(a[i..]) { + a[i] := s[i - index]; + i := i + 1; + } +} -- cgit v1.2.3