3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

add js-model interfacing

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-08-12 18:14:06 -07:00
parent 0af00e62de
commit 3478b8b924
11 changed files with 275 additions and 59 deletions

View file

@ -22,7 +22,7 @@ Revision History:
bool smt_logics::supported_logic(symbol const & s) {
return logic_has_uf(s) || logic_is_all(s) || logic_has_fd(s) ||
return logic_has_uf(s) || logic_is_allcsp(s) || logic_has_fd(s) ||
logic_has_arith(s) || logic_has_bv(s) ||
logic_has_array(s) || logic_has_seq(s) || logic_has_str(s) ||
logic_has_horn(s) || logic_has_fpa(s);
@ -83,7 +83,7 @@ bool smt_logics::logic_has_arith(symbol const & s) {
s == "QF_FPBV" ||
s == "QF_BVFP" ||
s == "QF_S" ||
s == "ALL" ||
logic_is_allcsp(s) ||
s == "QF_FD" ||
s == "HORN" ||
s == "QF_FPLRA";
@ -102,7 +102,7 @@ bool smt_logics::logic_has_bv(symbol const & s) {
s == "QF_BVRE" ||
s == "QF_FPBV" ||
s == "QF_BVFP" ||
s == "ALL" ||
logic_is_allcsp(s) ||
s == "QF_FD" ||
s == "HORN";
}
@ -123,22 +123,22 @@ bool smt_logics::logic_has_array(symbol const & s) {
s == "AUFNIRA" ||
s == "AUFBV" ||
s == "ABV" ||
s == "ALL" ||
logic_is_allcsp(s) ||
s == "QF_ABV" ||
s == "QF_AUFBV" ||
s == "HORN";
}
bool smt_logics::logic_has_seq(symbol const & s) {
return s == "QF_BVRE" || s == "QF_S" || s == "ALL";
return s == "QF_BVRE" || s == "QF_S" || logic_is_allcsp(s);
}
bool smt_logics::logic_has_str(symbol const & s) {
return s == "QF_S" || s == "ALL";
return s == "QF_S" || logic_is_allcsp(s);
}
bool smt_logics::logic_has_fpa(symbol const & s) {
return s == "QF_FP" || s == "QF_FPBV" || s == "QF_BVFP" || s == "QF_FPLRA" || s == "ALL";
return s == "QF_FP" || s == "QF_FPBV" || s == "QF_BVFP" || s == "QF_FPLRA" || logic_is_allcsp(s);
}
bool smt_logics::logic_has_uf(symbol const & s) {
@ -150,9 +150,10 @@ bool smt_logics::logic_has_horn(symbol const& s) {
}
bool smt_logics::logic_has_pb(symbol const& s) {
return s == "QF_FD" || s == "ALL" || logic_has_horn(s);
return s == "QF_FD" || logic_is_allcsp(s) || logic_has_horn(s);
}
bool smt_logics::logic_has_datatype(symbol const& s) {
return s == "QF_FD" || s == "ALL" || s == "QF_DT";
return s == "QF_FD" || logic_is_allcsp(s) || s == "QF_DT";
}

View file

@ -25,6 +25,8 @@ public:
static bool supported_logic(symbol const & s);
static bool logic_has_reals_only(symbol const& l);
static bool logic_is_all(symbol const& s) { return s == "ALL"; }
static bool logic_is_csp(symbol const& s) { return s == "CSP"; }
static bool logic_is_allcsp(symbol const& s) { return logic_is_all(s) || logic_is_csp(s); }
static bool logic_has_uf(symbol const& s);
static bool logic_has_arith(symbol const & s);
static bool logic_has_bv(symbol const & s);