How to interpret statistics Z3

廉价感情. 提交于 2019-12-04 05:09:30

问题


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?


回答1:


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:

  • Z3 statistics: what does time measure?
  • Z3 real arithmetic and statistics
  • Which statistics indicate an efficient run of Z3?


来源:https://stackoverflow.com/questions/17856574/how-to-interpret-statistics-z3

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!