Closed hagozaebii closed 10 months ago
div0 and mod0 are the functions that give meaning to div and mod when the second argument is 0. div/mod are uninterpreted when the second argument is 0. To represent the meaning at 0 z3 introduces uninterpreted functions that can be used in models. The interpreted functions are not used in models. You will have the axiom (div0 x 0) = (div x 0) enforced.
Hi, recently, I solved this formula using z3.
and I got a result as follows:
I found that there were
div0
andmod0
even though there were no functions like that. I guess those were fromdiv
andmod
used in other uninterpreted functions (e.g.bitof
). If it is true, I am curious about why the model has to have values aboutdiv
andmod
. I thinkdiv
andmod
mean functions defined in smtlibv2. Why does z3 interpret those functions like uninterpreted functions?Thanks for your time!