3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-04 14:25:46 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-12-10 20:25:12 -08:00
parent 5eb23e1e7a
commit 58411f64e8
5 changed files with 26 additions and 4 deletions

View file

@ -20,6 +20,7 @@ Revision History:
#include"arith_decl_plugin.h"
#include"array_decl_plugin.h"
#include"bv_decl_plugin.h"
#include"seq_decl_plugin.h"
#include"ast_pp.h"
#include"for_each_expr.h"
@ -29,6 +30,7 @@ struct check_logic::imp {
arith_util m_a_util;
bv_util m_bv_util;
array_util m_ar_util;
seq_util m_seq_util;
bool m_uf; // true if the logic supports uninterpreted functions
bool m_arrays; // true if the logic supports arbitrary arrays
bool m_bv_arrays; // true if the logic supports only bv arrays
@ -40,7 +42,7 @@ struct check_logic::imp {
bool m_quantifiers; // true if the logic supports quantifiers
bool m_unknown_logic;
imp(ast_manager & _m):m(_m), m_a_util(m), m_bv_util(m), m_ar_util(m) {
imp(ast_manager & _m):m(_m), m_a_util(m), m_bv_util(m), m_ar_util(m), m_seq_util(m) {
reset();
}
@ -168,9 +170,12 @@ struct check_logic::imp {
m_bvs = true;
m_quantifiers = true;
}
else if (logic == "UF_S") {
else if (logic == "QF_S") {
m_uf = true;
m_bvs = true;
m_ints = true;
m_arrays = true;
m_reals = true;
m_quantifiers = false;
}
else {
@ -424,6 +429,9 @@ struct check_logic::imp {
else if (m.is_builtin_family_id(fid)) {
// nothing to check
}
else if (fid == m_seq_util.get_family_id()) {
// nothing to check
}
else {
fail("logic does not support theory");
}

View file

@ -544,6 +544,7 @@ bool cmd_context::logic_has_arith_core(symbol const & s) const {
s == "QF_FP" ||
s == "QF_FPBV" ||
s == "QF_BVFP" ||
s == "QF_S" ||
s == "HORN";
}