diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2017-03-02 14:45:21 -0600 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2017-03-02 14:45:21 -0600 |
commit | 1f4b954a2cc7667a56a3007fa75c125fba93ed23 (patch) | |
tree | ea8734e89aa5fba170781c7148d3fd886c597d4e /src/printer | |
parent | 21b0cedd7dadd96e5d256885e3b65a926a7e4a81 (diff) |
Eliminate Boolean term conversion. Generalizes removeITE pass to remove Boolean terms, treats distinguished BOOLEAN_TERM_VARIABLE kind as theory literal. Fixes bugs 597, 604, 651, 652, 691, 694. Add regressions.
Diffstat (limited to 'src/printer')
-rw-r--r-- | src/printer/cvc/cvc_printer.cpp | 10 | ||||
-rw-r--r-- | src/printer/smt2/smt2_printer.cpp | 2 |
2 files changed, 5 insertions, 7 deletions
diff --git a/src/printer/cvc/cvc_printer.cpp b/src/printer/cvc/cvc_printer.cpp index a9eab4a8c..01978b2e5 100644 --- a/src/printer/cvc/cvc_printer.cpp +++ b/src/printer/cvc/cvc_printer.cpp @@ -225,7 +225,11 @@ void CvcPrinter::toStream(std::ostream& out, TNode n, int depth, bool types, boo // BUILTIN case kind::EQUAL: - op << '='; + if( n[0].getType().isBoolean() ){ + op << "<=>"; + }else{ + op << '='; + } opType = INFIX; break; case kind::ITE: @@ -294,10 +298,6 @@ void CvcPrinter::toStream(std::ostream& out, TNode n, int depth, bool types, boo op << "XOR"; opType = INFIX; break; - case kind::IFF: - op << "<=>"; - opType = INFIX; - break; case kind::IMPLIES: op << "=>"; opType = INFIX; diff --git a/src/printer/smt2/smt2_printer.cpp b/src/printer/smt2/smt2_printer.cpp index d75ec2126..a7add27f8 100644 --- a/src/printer/smt2/smt2_printer.cpp +++ b/src/printer/smt2/smt2_printer.cpp @@ -355,7 +355,6 @@ void Smt2Printer::toStream(std::ostream& out, TNode n, // bool theory case kind::NOT: case kind::AND: - case kind::IFF: case kind::IMPLIES: case kind::OR: case kind::XOR: @@ -719,7 +718,6 @@ static string smtKindString(Kind k) throw() { // bool theory case kind::NOT: return "not"; case kind::AND: return "and"; - case kind::IFF: return "="; case kind::IMPLIES: return "=>"; case kind::OR: return "or"; case kind::XOR: return "xor"; |