diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-08-17 02:48:22 -0500 |
---|---|---|
committer | Andres Noetzli <andres.noetzli@gmail.com> | 2018-08-17 00:48:22 -0700 |
commit | 29ae7d5ec0a73b90529e2200d948e6f4051099f1 (patch) | |
tree | a9dcb7074a2e79b35e17f2c4483638cf91ea1093 /test/regress | |
parent | 4d303b5e6de8a3b963357a3c0238ffe81d36f766 (diff) |
Eliminate partial operators in sygus grammar normalization (#2323)
This corrects a bug that was introduced in #2266 (the hack removed there was necessary).
This ensures that we handle operators like bvudiv, bvsdiv, bvurem, div, rem, / properly in sygus.
This also enables total semantics for BV div-by-zero for sygus.
Diffstat (limited to 'test/regress')
-rw-r--r-- | test/regress/Makefile.tests | 1 | ||||
-rw-r--r-- | test/regress/regress1/sygus/bvudiv-by-2.sy | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/test/regress/Makefile.tests b/test/regress/Makefile.tests index 82f8f2c27..e43f6675d 100644 --- a/test/regress/Makefile.tests +++ b/test/regress/Makefile.tests @@ -1509,6 +1509,7 @@ REG1_TESTS = \ regress1/sygus/array_search_2.sy \ regress1/sygus/array_search_5-Q-easy.sy \ regress1/sygus/array_sum_2_5.sy \ + regress1/sygus/bvudiv-by-2.sy \ regress1/sygus/cegar1.sy \ regress1/sygus/cegisunif-depth1.sy \ regress1/sygus/cegis-unif-inv-eq-fair.sy \ diff --git a/test/regress/regress1/sygus/bvudiv-by-2.sy b/test/regress/regress1/sygus/bvudiv-by-2.sy new file mode 100644 index 000000000..d6491972a --- /dev/null +++ b/test/regress/regress1/sygus/bvudiv-by-2.sy @@ -0,0 +1,27 @@ +; EXPECT: unsat +; COMMAND-LINE: --sygus-out=status +(set-logic BV) + +(synth-fun f ((x (BitVec 32))) (BitVec 32) +((Start (BitVec 32) + ( + (bvudiv Start Start) + (bvurem Start Start) + (bvsdiv Start Start) + #x00000001 + #x00000000 + #x00000002 x + (ite StartBool Start Start))) + (StartBool Bool (( bvult Start Start) + (bvugt Start Start) + (= Start Start) + )))) +(declare-var x (BitVec 32) ) + +; property +(constraint (= (f #x00000008) #x00000004)) +(constraint (= (f #x00000010) #x00000008)) +(constraint (not (= (f x) #xffffffff))) + + +(check-synth) |