diff options
| author | Brian Campbell | 2018-12-19 17:54:23 +0000 |
|---|---|---|
| committer | Brian Campbell | 2018-12-19 17:56:12 +0000 |
| commit | 7524c25b16a4e393a17acde8b20f6a42d30d0f94 (patch) | |
| tree | d1e7e2abd9cb83da0be9741c71adeb587d0aed20 /test | |
| parent | 502e0010ae4dfe24dde9dba0174d62540f9fc993 (diff) | |
Coq: handle pairs of ranges (and other existential types) properly
(Needed for current CHERI.)
Diffstat (limited to 'test')
| -rw-r--r-- | test/coq/pass/rangepair.sail | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/coq/pass/rangepair.sail b/test/coq/pass/rangepair.sail new file mode 100644 index 00000000..ce08ee4a --- /dev/null +++ b/test/coq/pass/rangepair.sail @@ -0,0 +1,33 @@ +/* Check that tuples of values that should be accompanied by a Coq proof are + handled properly. */ + +$include <prelude.sail> + +/* Monadic version */ + +val getpair_eff : unit -> (range(1,2),range(3,4)) effect {escape} + +function getpair_eff () = { + assert(true); + return (2,3) +} + +val test_eff : unit -> range (4,6) effect {escape} + +function test_eff () = + let (x,y) = getpair_eff() in + x + y + +/* Pure version */ + +val getpair : unit -> (range(1,2),range(3,4)) + +function getpair () = { + return (2,3) +} + +val test : unit -> range (4,6) + +function test () = + let (x,y) = getpair() in + x + y |
