Quantifier Elimination - More questions

前端 未结 1 1751
囚心锁ツ
囚心锁ツ 2021-01-19 02:56

Many thanks Josh and Leonardo for answering the previous question.

I have few more questions.

<1> Consider another example.

(exists k) i *         


        
相关标签:
1条回答
  • 2021-01-19 03:19

    <1> The theory of nonlinear integer arithmetic does not admit quantifier elimination (qe). Moreover, the decision problem for nonlinear integer arithmetic is undecidable.

    Recall that, Z3 has limited support for quantifier elimination of nonlinear real arithmetic formulas. The current procedure is based on virtual term substitution. Future versions, may have full support for nonlinear real arithmetic.

    <2> Quantifier elimination is not enabled by default. The user must request it. Z3 may find models for satisfiable formulas even when quantifier elimination is not enabled. It uses a technique called model-based quantifier instantiation (MBQI). The Z3 online tutorial has several examples describing capabilities and limitations of this technique.

    <3> You have to enable it when you create the Z3_context object. Any option that is set in the command line, can be provided during Z3_context object creation. Here is an example, that enables model construction and quantifier elimination:

    Z3_config cfg = Z3_mk_config();
    Z3_context ctx;
    Z3_set_param_value(cfg, "MODEL", "true");
    Z3_set_param_value(cfg, "ELIM_QUANTIFIERS", "true");
    Z3_set_param_value(cfg, "ELIM_NLARITH_QUANTIFIERS", "true");
    ctx = mk_context_custom(cfg, throw_z3_error);
    Z3_del_config(cfg);
    

    After that, ctx is pointing to a Z3 context object that supports model construction and quantifier elimination.

    <4> The MBQI module is not complete even for the linear arithmetic fragment. The Z3 online tutorial describes the fragments it is complete. MBQI module is a good option for problems that contain uninterpreted functions. If your problems only use arithmetic, then quantifier elimination is usually better and more efficient. That being said, several problems can be quickly solved using MBQI.

    0 讨论(0)
提交回复
热议问题