Question

I get the following statistics in Z3.

(:added-eqs            24529
 :binary-propagations  43837
 :bv-bit2core          7115
 :bv-conflicts         156
 :bv-diseqs            10395
 :bv-dynamic-diseqs    10028
 :bv->core-eq          10401
 :conflicts            409
 :decisions            4840
 :del-clause           84926
 :final-checks         2
 :max-generation       4
 :memory               5.69
 :minimized-lits       467
 :mk-clause            88358
 :propagations         90195
 :quant-instantiations 3388
 :restarts             3
 :time                 0.83)

I'd like to know what the metrics used for each result row.

Can you help me?

Was it helpful?

Solution

Disclaimer: I have the feeling that interpreting the statistics the right way is quite an art, and that the Z3 developers are probably the only ones who really know how to do that. Anyway, here is what I know ... or believe:

quant-instantiations indicates the number of instantiated quantifiers. The fewer instantiations the better, but you of course don't want to make your patterns/triggers too strict because Z3 then won't be able to prove anything.

conflicts indicate assignments that happen in the theory subsolvers and that did not make the formula true. If the formula can be satisfied and the number of conflicts is high, it basically means that the prover tried lots of assignments that did not satisfy the formula, i.e., that the prover did not manage to explore the search space in the direction of the goal.

Related questions:

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top