More fixes for printing sygus commands (#3812)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 26 Feb 2020 20:59:38 +0000 (14:59 -0600)
committerGitHub <noreply@github.com>
Wed, 26 Feb 2020 20:59:38 +0000 (14:59 -0600)
commit3ef1df6e974ba572a8def512489cd9e47e9d2a2b
tree82ed16f31e9fd3d7a3356c0248b3a7a7a384864c
parentb320aa323923822a7702997bbca05e8512da55a4
More fixes for printing sygus commands (#3812)

Towards v1 -> v2 sygus conversion.

This makes several fixes and improvements related to printing sygus commands:
(1) The logic is extended with LIA, DT, UF internally during setDefaults instead of during parsing. This is the correct place for this extension of the logic since it should be applied regardless of the parser. 5 existing logic bugs were discovered as a result of this in regressions, which are fixed by this PR.
(2) Ensures that terms in sygus grammars are printed without letification, since this is prohibited in sygus. Notice the formulas printed by constraints need to be letified (otherwise we can't convert large lustre benchmarks). Thus, the letification threshold should determine this but always be overridden for grammar terms.
(3) Ensures final options are set for all sygus-specific commands, which follows the standards prescribed by sygus v2 (all set-* commands come before other commands).
src/parser/smt2/smt2.cpp
src/printer/printer.cpp
src/printer/smt2/smt2_printer.cpp
src/printer/sygus_print_callback.cpp
src/smt/smt_engine.cpp
test/regress/regress0/sygus/sygus-uf.sy
test/regress/regress1/sygus/constant-bool-si-all.sy
test/regress/regress1/sygus/constant-dec-tree-bug.sy
test/regress/regress1/sygus/sygus-uf-ex.sy
test/regress/regress1/sygus/tester.sy