Given a problem that is encoded using Z3 reals, which of the statistics generated by Z3 /smt2 /st can be useful in judging whether a reaction engine has problems / does a lot of work?
In my case, I have two basically equivalent coding problems, like using reals. However, the "small" difference in coding is of great importance at runtime, namely, that coding A takes 2: 30 minutes and coding B 13min. Z3 statistics show that conflicts and quant-instantiations are mostly equivalent, but others are not, for example, grobner , pivots and nonlinear-horner .
Two different statistics are available as gist .
EDIT (to respond to Leo's comment):
The SMT2 encoding generated by both versions is ~ 30k lines, and statements that use reals are scattered throughout the code. The main difference is that coding B uses many constants with undefined constants in the range from 0.0 to 1.0 , which are limited by inequalities, for example. 0.0 < r1 < 1.0 or 0.0 < r3 < 0.75 - r1 - r2 , while when coding A, many of these undefined constants were replaced by fixed real values from the same range, for example, 0.1 or 0.75 - 0.01 . Both encodings use nonlinear real arithmetic, for example. r1 * (1.0 - r2) .
A few random examples of the two encodings are available as gist . All arising variables are undefined actions, as described above.
PS: Does it introduce aliases for fixed real values, for example,
 (define-sort $Perms () Real) (declare-const $Perms.$Full $Perms) (declare-const $Perms.$None $Perms) (assert (= $Perms.Zero 0.0)) (assert (= $Perms.Write 1.0)) 
Do significant penalties apply?