mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 00:55:31 +00:00
add SMTLIB2.6 names for QF_SLIA and string-int conversion operators (#4341)
This commit is contained in:
parent
21c4d451d8
commit
6f0a367357
4 changed files with 14 additions and 7 deletions
|
@ -622,8 +622,8 @@ void seq_decl_plugin::init() {
|
|||
m_sigs[OP_STRING_CONST] = nullptr;
|
||||
m_sigs[_OP_STRING_STRIDOF] = alloc(psig, m, "str.indexof", 0, 3, str2TintT, intT);
|
||||
m_sigs[_OP_STRING_STRREPL] = alloc(psig, m, "str.replace", 0, 3, str3T, strT);
|
||||
m_sigs[OP_STRING_ITOS] = alloc(psig, m, "int.to.str", 0, 1, &intT, strT);
|
||||
m_sigs[OP_STRING_STOI] = alloc(psig, m, "str.to.int", 0, 1, &strT, intT);
|
||||
m_sigs[OP_STRING_ITOS] = alloc(psig, m, "str.from_int", 0, 1, &intT, strT);
|
||||
m_sigs[OP_STRING_STOI] = alloc(psig, m, "str.to_int", 0, 1, &strT, intT);
|
||||
m_sigs[OP_STRING_LT] = alloc(psig, m, "str.<", 0, 2, str2T, boolT);
|
||||
m_sigs[OP_STRING_LE] = alloc(psig, m, "str.<=", 0, 2, str2T, boolT);
|
||||
m_sigs[_OP_STRING_CONCAT] = alloc(psig, m, "str.++", 1, 2, str2T, strT);
|
||||
|
@ -928,7 +928,13 @@ void seq_decl_plugin::get_op_names(svector<builtin_name> & op_names, symbol cons
|
|||
}
|
||||
}
|
||||
op_names.push_back(builtin_name("str.in.re", _OP_STRING_IN_REGEXP));
|
||||
op_names.push_back(builtin_name("str.in-re", _OP_STRING_IN_REGEXP));
|
||||
op_names.push_back(builtin_name("str.to.re", _OP_STRING_TO_REGEXP));
|
||||
op_names.push_back(builtin_name("str.to-re", _OP_STRING_TO_REGEXP));
|
||||
op_names.push_back(builtin_name("str.to-int", OP_STRING_STOI));
|
||||
op_names.push_back(builtin_name("str.to.int", OP_STRING_STOI));
|
||||
op_names.push_back(builtin_name("str.from-int", OP_STRING_ITOS));
|
||||
op_names.push_back(builtin_name("int.to.str", OP_STRING_ITOS));
|
||||
op_names.push_back(builtin_name("re.nostr", _OP_REGEXP_EMPTY));
|
||||
op_names.push_back(builtin_name("re.complement", OP_RE_COMPLEMENT));
|
||||
}
|
||||
|
|
|
@ -182,7 +182,7 @@ struct check_logic::imp {
|
|||
m_bvs = true;
|
||||
m_quantifiers = true;
|
||||
}
|
||||
else if (logic == "QF_S") {
|
||||
else if (logic == "QF_S" || logic == "QF_SLIA") {
|
||||
m_uf = true;
|
||||
m_bvs = true;
|
||||
m_ints = true;
|
||||
|
|
|
@ -129,7 +129,7 @@ namespace smt {
|
|||
setup_QF_FP();
|
||||
else if (m_logic == "QF_FPBV" || m_logic == "QF_BVFP")
|
||||
setup_QF_FPBV();
|
||||
else if (m_logic == "QF_S")
|
||||
else if (m_logic == "QF_S" || m_logic == "QF_SLIA")
|
||||
setup_QF_S();
|
||||
else if (m_logic == "QF_DT")
|
||||
setup_QF_DT();
|
||||
|
@ -177,7 +177,7 @@ namespace smt {
|
|||
setup_QF_BVRE();
|
||||
else if (m_logic == "QF_AUFLIA")
|
||||
setup_QF_AUFLIA(st);
|
||||
else if (m_logic == "QF_S")
|
||||
else if (m_logic == "QF_S" || m_logic == "QF_SLIA")
|
||||
setup_QF_S();
|
||||
else if (m_logic == "AUFLIA")
|
||||
setup_AUFLIA(st);
|
||||
|
|
|
@ -85,6 +85,7 @@ bool smt_logics::logic_has_arith(symbol const & s) {
|
|||
s == "QF_FPBV" ||
|
||||
s == "QF_BVFP" ||
|
||||
s == "QF_S" ||
|
||||
s == "QF_SLIA" ||
|
||||
logic_is_allcsp(s) ||
|
||||
s == "QF_FD" ||
|
||||
s == "HORN" ||
|
||||
|
@ -135,11 +136,11 @@ bool smt_logics::logic_has_array(symbol const & s) {
|
|||
}
|
||||
|
||||
bool smt_logics::logic_has_seq(symbol const & s) {
|
||||
return s == "QF_BVRE" || s == "QF_S" || logic_is_allcsp(s);
|
||||
return s == "QF_BVRE" || s == "QF_S" || s == "QF_SLIA" || logic_is_allcsp(s);
|
||||
}
|
||||
|
||||
bool smt_logics::logic_has_str(symbol const & s) {
|
||||
return s == "QF_S" || logic_is_allcsp(s);
|
||||
return s == "QF_S" || s == "QF_SLIA" || logic_is_allcsp(s);
|
||||
}
|
||||
|
||||
bool smt_logics::logic_has_fpa(symbol const & s) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue