enums - Quantifier elimination for enumeration types in Z3 -


i'm experimenting quantifier elimination tactic formulas of enumerated types. i'd know if there ways of increasing performance adjusting solver somehow. after brief glance on source code concluded there seem different strategies quantifier elimination (e.g. qe_lite.cpp), not exposed parameters of qe tactic. in case formulas have simple propositional structure, quantified variables don't occur in formula, procedure can called several thousands of times. guess, questions following:

  1. does z3 have sort of caching quantifier elimination (application mode?), allow process bunch of similar or identical formulas faster?
  2. can guide z3 use different approaches quantifier elimination on finite domain formulas, can see 1 works better me?
  3. it interesting know approach used in z3 eliminate quantifiers formulas on finite domain types. performed substitution + simplification, or more elaborate techniques used?

thank you.

  1. "qe-lite" separate tactic "qe".
  2. there no similarity detection of formulas. identical formulas hash-consed (represented uniquely) , quantifier elimination traverses once.
  3. you can try either "qe" or "qe-lite". "qe-lite" light-weight. eliminates equalities. meant crude (faster, incomplete) routine eliminating quantified variables when opportune.
  4. the facilities finite domains simple: z3 performs bit-vector , booleans all-sat find values can used. enumeration types given algebraic data-types, z3 case split (followed satisfiability check prune). values finite domain are

Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -