diff options
author | Kshitij Bansal <kshitij@cs.nyu.edu> | 2014-10-10 17:16:17 -0400 |
---|---|---|
committer | Kshitij Bansal <kshitij@cs.nyu.edu> | 2014-10-10 17:16:17 -0400 |
commit | 5527b0c00639f24b11d5e1d4c69050d908b82400 (patch) | |
tree | 347f4909159c63daf0c0f5b84ba2a4821db3b069 /test/regress/regress0/trim.cvc | |
parent | d9cc527b3edb3ba39f076ce0b77327a473b89b88 (diff) |
Fix issue with shared but non-preregistered term setup. Thanks Alvise Rabitti for the report.
Diffstat (limited to 'test/regress/regress0/trim.cvc')
-rw-r--r-- | test/regress/regress0/trim.cvc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/regress/regress0/trim.cvc b/test/regress/regress0/trim.cvc new file mode 100644 index 000000000..8bdbde79a --- /dev/null +++ b/test/regress/regress0/trim.cvc @@ -0,0 +1,36 @@ +% COMMAND-LINE: --finite-model-find +% EXPECT: sat +DATATYPE + myType = A | B +END; +%%% structured datatypes +myTypeSet: TYPE = SET OF myType; +myTypeGammaSet: TYPE = [# pos: myTypeSet, neg: myTypeSet #]; +delta: TYPE = ARRAY myType OF myTypeGammaSet; +labels: TYPE = ARRAY myType OF SET OF STRING; + +%%% the empty myTypes set +emptymyTypeSet : SET OF myType; +ASSERT emptymyTypeSet = {} :: SET OF myType; + +d: delta; +l: labels; + +ASSERT (l[A] = {"L","H"}); +ASSERT (l[B] = {"L"}); + +ic0_i : myTypeSet; +ic0_c : myTypeSet; +ASSERT FORALL (r:myType): + (r IS_IN ic0_i) => FORALL (r2: myType): (r2 IS_IN d[r].neg) => r2 IS_IN ic0_c; +ASSERT {A} <= ic0_i; +ASSERT ((EXISTS (e0 : myType): (e0 IS_IN ic0_i) => (l[A] <= l[e0]))) OR ((ic0_i & ic0_c) <= emptymyTypeSet); + +ic1_i : myTypeSet; +ic1_c : myTypeSet; +ASSERT FORALL (r:myType): + (r IS_IN d[B].pos) => r IS_IN ic1_i; +ASSERT ((EXISTS (e1 : myType): (e1 IS_IN ic1_i) => (l[B] <= l[e1]))) OR ((ic1_i & ic1_c) <= emptymyTypeSet); + +CHECKSAT; +%COUNTEREXAMPLE; |