mirror of
https://github.com/Z3Prover/z3
synced 2025-04-26 10:35:33 +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
|
@ -322,6 +322,9 @@ typedef enum
|
|||
- Z3_OP_AS_ARRAY An array value that behaves as the function graph of the
|
||||
function passed as parameter.
|
||||
|
||||
- Z3_OP_ARRAY_EXT Array extensionality function. It takes two arrays as arguments and produces an index, such that the arrays
|
||||
are different if they are different on the index.
|
||||
|
||||
- Z3_OP_BNUM Bit-vector numeral.
|
||||
|
||||
- Z3_OP_BIT1 One bit bit-vector.
|
||||
|
@ -1033,6 +1036,7 @@ typedef enum {
|
|||
Z3_OP_SET_COMPLEMENT,
|
||||
Z3_OP_SET_SUBSET,
|
||||
Z3_OP_AS_ARRAY,
|
||||
Z3_OP_ARRAY_EXT,
|
||||
|
||||
// Bit-vectors
|
||||
Z3_OP_BNUM = 0x400,
|
||||
|
@ -3260,6 +3264,17 @@ END_MLAPI_EXCLUDE
|
|||
Z3_ast Z3_API Z3_mk_set_subset(Z3_context c, Z3_ast arg1, Z3_ast arg2);
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
\brief Create array extensionality index given two arrays with the same sort.
|
||||
The meaning is given by the axiom:
|
||||
(=> (= (select A (array-ext A B)) (select B (array-ext A B))) (= A B))
|
||||
|
||||
def_API('Z3_mk_array_ext', AST, (_in(CONTEXT), _in(AST), _in(AST)))
|
||||
*/
|
||||
|
||||
Z3_ast Z3_API Z3_mk_array_ext(Z3_context c, Z3_ast arg1, Z3_ast arg2);
|
||||
/*@}*/
|
||||
|
||||
/**
|
||||
@name Numerals
|
||||
*/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue