mirror of
https://github.com/Z3Prover/z3
synced 2025-05-03 22:05:45 +00:00
enable nested ADT and sequences
add API to define forward reference to recursively defined datatype. The forward reference should be used only when passed to constructor declarations that are used in a datatype definition (Z3_mk_datatypes). The call to Z3_mk_datatypes ensures that the forward reference can be resolved with respect to constructors.
This commit is contained in:
parent
8e2f09b517
commit
81d97a81af
10 changed files with 232 additions and 92 deletions
|
@ -2094,6 +2094,19 @@ extern "C" {
|
|||
unsigned num_constructors,
|
||||
Z3_constructor constructors[]);
|
||||
|
||||
/**
|
||||
\brief create a forward reference to a recursive datatype being declared.
|
||||
The forward reference can be used in a nested occurrence: the range of an array
|
||||
or as element sort of a sequence. The forward reference should only be used when
|
||||
used in an accessor for a recursive datatype that gets declared.
|
||||
|
||||
Forward references can replace the use sort references, that are unsigned integers
|
||||
in the \c Z3_mk_constructor call
|
||||
|
||||
def_API('Z3_mk_datatype_sort', SORT, (_in(CONTEXT), _in(SYMBOL)))
|
||||
*/
|
||||
Z3_sort Z3_API Z3_mk_datatype_sort(Z3_context c, Z3_symbol name);
|
||||
|
||||
/**
|
||||
\brief Create list of constructors.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue