3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

Sharon & Neta notes

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-08-03 16:45:25 -07:00
parent da60abd84b
commit 7ae4e93e86
2 changed files with 20 additions and 9 deletions

View file

@ -111,6 +111,18 @@ namespace q {
add_projection_functions(mdl, f);
}
/**
* we are given f with interpretation:
* if x = v0 and y = w0 then f0
* else if x = v1 and y = w1 then f1
* ...
* Create a new interpretation for f as follows:
* f := f_aux(project1(x), project2(y))
* f_aux uses the original interpretation of f
* project1 sorts the values of v0, v1, ..., and maps arguments below v0 to v0, between v0, v1 to v1 etc.
* project2 sorts values of w0, w1, ... and maps argument y to values w0, w1, ..
*
*/
void model_fixer::add_projection_functions(model& mdl, func_decl* f) {
// update interpretation of f so that the graph of f is fully determined by the
// ground values of its arguments.