diff options
author | MichalMoskal <unknown> | 2010-02-19 22:17:39 +0000 |
---|---|---|
committer | MichalMoskal <unknown> | 2010-02-19 22:17:39 +0000 |
commit | 5827ea8d4d4771174a864d5425d89bec22d62fa3 (patch) | |
tree | 02522e1c475eb6cf064242aac5edbd8f61ed0d57 /Test/test2/LambdaPoly.bpl | |
parent | 1127ea8d8037278415fa5cb2d8917d972b122983 (diff) |
Fix up the polymorphic case for lambda; it probably still isn't quite correct.
Diffstat (limited to 'Test/test2/LambdaPoly.bpl')
-rw-r--r-- | Test/test2/LambdaPoly.bpl | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Test/test2/LambdaPoly.bpl b/Test/test2/LambdaPoly.bpl new file mode 100644 index 00000000..6d56e7c5 --- /dev/null +++ b/Test/test2/LambdaPoly.bpl @@ -0,0 +1,18 @@ +type set a = [a]bool; +function union<T>(a:set T, b:set T) : set T; +axiom (forall<T> a,b:set T :: union(a,b) == (lambda x:T :: a[x] || b[x])); + +function diff<T>(a:set T, b:set T) : set T {(lambda x:T :: a[x] && !b[x]) } + +procedure a() +{ + var a:set int, b:set int; + assume a[1]; + assume b[2]; + assert union(a,b)[1]; + assert union(a,b)[2]; + assume !b[1]; + assert diff(a,b)[1]; + assert !diff(a,b)[2]; +} + |