mirror of
https://github.com/Z3Prover/z3
synced 2025-08-03 18:00:23 +00:00
add array-ext to externally exposed functions to enable interpolants with arrays to be usable in feedback loops with Z3. Addresses one issue raised in #292
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
8d1fa3ae50
commit
4685a5f8ba
12 changed files with 71 additions and 16 deletions
|
@ -273,7 +273,7 @@ namespace smt {
|
|||
}
|
||||
context & ctx = get_context();
|
||||
|
||||
if (is_map(n)) {
|
||||
if (is_map(n) || is_array_ext(n)) {
|
||||
for (unsigned i = 0; i < n->get_num_args(); ++i) {
|
||||
enode* arg = ctx.get_enode(n->get_arg(i));
|
||||
if (!is_attached_to_var(arg)) {
|
||||
|
@ -320,6 +320,10 @@ namespace smt {
|
|||
found_unsupported_op(n);
|
||||
instantiate_default_as_array_axiom(node);
|
||||
}
|
||||
else if (is_array_ext(n)) {
|
||||
SASSERT(n->get_num_args() == 2);
|
||||
instantiate_extensionality(ctx.get_enode(n->get_arg(0)), ctx.get_enode(n->get_arg(1)));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue