Search code examples
z3

Z3 4.0 Extra Output in Model


When I am trying to get a model string, along with the variables that I define, I get extra output in the model as -

 z3name!0=3, z3name!1=-2, z3name!10=0, z3name!11=0, z3name!12=0, z3name!13=0, z3name!14=0, z3name!15=0, z3name!2=0, z3name!3=0, z3name!4=2, z3name!5=2, z3name!6=0, z3name!7=-3, z3name!8=2, z3name!9=0

I want to know that is this erroneous output? Or is it some intermediate variables that are being used by Z3?

Because the values for the variables I have defined seems okay to me. I have not seen previously any such output, thus I got this doubt.


Solution

  • Z3 has several preprocessing steps. Some of them introduce new variables. The new variables are usually removed from the resulting model. If they are not, this is a bug. However, this bug does not affect correctness. It is just an inconvenience.

    It would be great if you could post your problem. We would be able to identify which preprocessing step is not eliminating the introduced auxiliary variables.