From 2de80b5ce9ed768976d448fe0f8f69edc2aa21d2 Mon Sep 17 00:00:00 2001
From: Nikolaj Bjorner <nbjorner@microsoft.com>
Date: Mon, 29 May 2017 10:08:50 -0700
Subject: [PATCH] add pb built in ops for logic ALL #1045

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
---
 src/ast/pb_decl_plugin.cpp      | 2 +-
 src/cmd_context/cmd_context.cpp | 4 ----
 src/cmd_context/cmd_context.h   | 1 -
 src/solver/smt_logics.cpp       | 2 +-
 4 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/ast/pb_decl_plugin.cpp b/src/ast/pb_decl_plugin.cpp
index 09f020ca6..28f889739 100644
--- a/src/ast/pb_decl_plugin.cpp
+++ b/src/ast/pb_decl_plugin.cpp
@@ -91,7 +91,7 @@ func_decl * pb_decl_plugin::mk_func_decl(decl_kind k, unsigned num_parameters, p
 }
 
 void pb_decl_plugin::get_op_names(svector<builtin_name> & op_names, symbol const & logic) {
-    if (logic == symbol::null || logic == "QF_FD") {
+    if (logic == symbol::null || logic == "QF_FD" || logic == "ALL") {
         op_names.push_back(builtin_name(m_at_most_sym.bare_str(), OP_AT_MOST_K));
         op_names.push_back(builtin_name(m_at_least_sym.bare_str(), OP_AT_LEAST_K));
         op_names.push_back(builtin_name(m_pble_sym.bare_str(), OP_PB_LE));
diff --git a/src/cmd_context/cmd_context.cpp b/src/cmd_context/cmd_context.cpp
index 9ef48ed30..d4273d42d 100644
--- a/src/cmd_context/cmd_context.cpp
+++ b/src/cmd_context/cmd_context.cpp
@@ -530,10 +530,6 @@ bool cmd_context::logic_has_fpa() const {
     return !has_logic() || smt_logics::logic_has_fpa(m_logic);
 }
 
-bool cmd_context::logic_has_str() const {
-    return !has_logic() || m_logic == "QF_S";
-}
-
 bool cmd_context::logic_has_array() const {
     return !has_logic() || smt_logics::logic_has_array(m_logic);
 }
diff --git a/src/cmd_context/cmd_context.h b/src/cmd_context/cmd_context.h
index c72e2ac0e..ed92ab909 100644
--- a/src/cmd_context/cmd_context.h
+++ b/src/cmd_context/cmd_context.h
@@ -257,7 +257,6 @@ protected:
     bool logic_has_array() const;
     bool logic_has_datatype() const;
     bool logic_has_fpa() const;
-    bool logic_has_str() const;
 
     void print_unsupported_msg() { regular_stream() << "unsupported" << std::endl; }
     void print_unsupported_info(symbol const& s, int line, int pos) { if (s != symbol::null) diagnostic_stream() << "; " << s << " line: " << line << " position: " << pos << std::endl;}
diff --git a/src/solver/smt_logics.cpp b/src/solver/smt_logics.cpp
index c4ead74df..2bb364b6a 100644
--- a/src/solver/smt_logics.cpp
+++ b/src/solver/smt_logics.cpp
@@ -153,5 +153,5 @@ bool smt_logics::logic_has_pb(symbol const& s) {
 }
 
 bool smt_logics::logic_has_datatype(symbol const& s) {
-    return s == "QF_FD";
+    return s == "QF_FD" || s == "ALL";
 }