summaryrefslogtreecommitdiff
path: root/tests/disjoint.lac
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-07-01 13:19:14 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-07-01 13:19:14 -0400
commita0b2a6145f200885f5dd7b365d2ffad51851795e (patch)
treee5fdf8d020ba7a2adfa14d63eca6da73cd175129 /tests/disjoint.lac
parentf7d2bdce780d0333431829a8a788bdb208c0dcbc (diff)
More with disjointness assumptions
Diffstat (limited to 'tests/disjoint.lac')
-rw-r--r--tests/disjoint.lac26
1 files changed, 24 insertions, 2 deletions
diff --git a/tests/disjoint.lac b/tests/disjoint.lac
index fcc86fa5..28b14423 100644
--- a/tests/disjoint.lac
+++ b/tests/disjoint.lac
@@ -1,4 +1,4 @@
-con c1 = fn x :: Name => [x] ~ [A] => [x, A]
+con c1 = fn x :: Name => [x] ~ [A] => [x = int, A = string]
con c2 = fn x :: Name => [x] ~ [A] => [A, x]
con c3 = fn x :: Name => [A] ~ [x] => [x, A]
con c4 = fn x :: Name => [A] ~ [x] => [A, x]
@@ -6,6 +6,28 @@ con c4 = fn x :: Name => [A] ~ [x] => [A, x]
con c5 = fn r1 :: {Type} => fn r2 => r1 ~ r2 => r1 ++ r2
con c6 = fn r1 :: {Type} => fn r2 => r2 ~ r1 => r1 ++ r2
-con c7 = fn x :: Name => fn r => [x] ~ r => [x] ++ r
+con c7 = fn x :: Name => fn r => [x] ~ r => [x = int] ++ r
+
+val vt1 = fn x : $(c1 #B) => x.B
+val vt2 = fn x : $(c1 #B) => x.A
+val vt3 = fn x : $(c1 #C) => x.A
+val vt4 = fn x : $(c1 #C) => x.A
+(*
+val vtX = fn x : $(c1 #A) => x.A
+val vtX = fn x : $(c1 #A) => x.A
+*)
val v1 = fn x :: Name => fn [x] ~ [A] => fn y : {x : int, A : string} => y.x
+
+val vt5 = v1 [#B] {A = "Hi", B = 0}
+(*
+val vtX = v1 [#A] {A = "Hi", A = 0}
+*)
+
+val v2 = fn x :: Name => fn r :: {Type} => fn y : $(c7 x r) => fn [x] ~ r => y.x
+val vt6 = v2 [#A] [[B = float, C = string]] {A = 8, B = 8.0, C = "8"}
+
+(*
+val vtX = v2 [#A] [[B = float, B = string]] {A = 8, B = 8.0, B = "8"}
+val vtX = v2 [#A] [[A = float, B = string]] {A = 8, A = 8.0, B = "8"}
+*)