mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
add get-some-value to seq API, expose quantifier tactics
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
345f6e87bd
commit
8e378062e2
3 changed files with 29 additions and 0 deletions
|
@ -744,6 +744,19 @@ bool seq_decl_plugin::is_value(app* e) const {
|
|||
m_manager->is_value(e->get_arg(0)));
|
||||
}
|
||||
|
||||
expr* seq_decl_plugin::get_some_value(sort* s) {
|
||||
seq_util util(*m_manager);
|
||||
if (util.is_seq(s)) {
|
||||
return util.str.mk_empty(s);
|
||||
}
|
||||
sort* seq;
|
||||
if (util.is_re(s, seq)) {
|
||||
return util.re.mk_to_re(util.str.mk_empty(seq));
|
||||
}
|
||||
UNREACHABLE();
|
||||
return 0;
|
||||
}
|
||||
|
||||
app* seq_util::mk_skolem(symbol const& name, unsigned n, expr* const* args, sort* range) {
|
||||
SASSERT(range);
|
||||
parameter param(name);
|
||||
|
|
|
@ -177,10 +177,13 @@ public:
|
|||
|
||||
virtual bool is_unique_value(app * e) const { return is_value(e); }
|
||||
|
||||
virtual expr * get_some_value(sort * s);
|
||||
|
||||
bool is_char(ast* a) const { return a == m_char; }
|
||||
|
||||
app* mk_string(symbol const& s);
|
||||
app* mk_string(zstring const& s);
|
||||
|
||||
};
|
||||
|
||||
class seq_util {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue