Simplify handling of subtypes in smt2 printer (#5401)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Mon, 9 Nov 2020 20:38:54 +0000 (14:38 -0600)
committerGitHub <noreply@github.com>
Mon, 9 Nov 2020 20:38:54 +0000 (14:38 -0600)
commitbf98dd46aa92241d33901e84a437536ad5010be1
treef71903ac761f31d91090407877d5be9af1445771
parent4b894cc0201783a40cd92e9bffe7257d44f8f4e4
Simplify handling of subtypes in smt2 printer (#5401)

This makes major simplifications to how subtypes are enforced in the smt2 printer.

It is now the principle that the smt2 prints things faithfully to the AST, regardless of whether it conforms to the smt2 standard.

It also fixes the current smt2 printing of to_real.

Conversely, this removes a hack from GetValueCommand which forced casting via x -> (/ x 1). This is now properly handled in Solver::getValue.

Some regressions change expected output as a result. Notice that internally generated Node may not conform to the smt2 standard, but user-level terms will.
src/api/cvc4cpp.cpp
src/api/cvc4cpp.h
src/printer/smt2/smt2_printer.cpp
src/printer/smt2/smt2_printer.h
src/smt/command.cpp
test/regress/regress0/get-value-reals-ints.smt2
test/regress/regress0/get-value-reals.smt2
test/regress/regress1/arith/mult.02.smt2