Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8857233
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 14, 20262026-06-14T14:32:29+00:00 2026-06-14T14:32:29+00:00

I am interested in testing the practical impact of the decision/instantiation procedure (its implementation

  • 0

I am interested in testing the “practical” impact of the decision/instantiation procedure (its implementation inclusive) discussed in [1].

I need:

1) A “tool” that take an SMT benchmark and returns a (possibly complete) instantiated version of it, applying the strategy. If this is not possible,

2) The Z3 version implementing this strategy and an option for switching it on and off.

Can you help me on that?

[1] Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-14T14:32:30+00:00Added an answer on June 14, 2026 at 2:32 pm

    As far as I know, there is no tool that will return the instantiated version of an SMT benchmark.
    Z3 instantiates the quantifiers on-demand using Model-Based Quantifier Instantiation (MBQI) described on Section 6 of [1]. The actual loop in the latest Z3 is more complicated that the one described on this section.

    Here are some notes on how to enable/disable the MBQI module.

    • First, we should disable automatic configuration using the command

    (set-option :auto-config false)

    • Z3 4.x uses MBQI and E-Matching for handling quantifiers. We should use the commands for disabling both of them:
    (set-option :ematching false)
    (set-option :mbqi false)
    
    • To enable them, we should use:
    (set-option :ematching true)
    (set-option :mbqi true)
    

    With these options you can check the effect of MBQI and E-Matching in different problems. Note that, if we use only E-matching, then Z3 will return unknown for any satisfiable problem that contains quantifiers.

    The MBQI module is implemented in the files src/smt/smt_model_finder.cpp and src/smt/smt_model_checker.cpp. The file src/smt/smt_model_finder.cpp is essentially converting a model produced for the quantifier-free formulas in a model that may potentially satisfy the universally quantified formulas. Note that the class auf_solver is the one that actually “solves” the set constraints and “builds” the projection functions described in [1].

    If we want to trace the actual instances generated by the MBQI module, we can modify the method void model_checker::assert_new_instances() at src/smt/smt_model_checker.cpp. Note that these method already has some tracing commands sending data to tout (trace output). We can replace tout with std::cout to get the information on the standard output.
    For example, if we add the following piece of code, then whenever a universal quantifier q is instantiated (by the MBQI module) with some bindings, Z3 will display the information in the standard output:

    std::cout << "[New-instance]\n" << mk_pp(q, m_manager) << "\n";
    std::cout << "[Bindings]\n";
    for (unsigned i = 0; i < num_decls; i++) {
        expr * b = inst->m_bindings[i];
        std::cout << mk_pp(b, m_manager) << "\n";
    }
    std::cout << "[End-New-Instance]\n";
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am interested in your opinions on unit-testing code that uses Corba to communicate
I am interested in speeding up my development/testing workflow on a program that I
I know that unit testing is desirable, and I am interested in doing unit
I'm looking for some tool that would do basic testing of PHP script. This
As one of the features in an in-house testing tool I'm interested in allowing
I'm interested in reassigning factory functions for testing reasons within Go, to mitigate the
I'm very interested in testing out LinqPad with our Entity Framework 4.0 based websites,
Is there any other solution for testing android applications other than using that slow
I'm interested in using the Lightweight Testing Automation Framework (LTAF) to create integration tests
I've recently become quite interested in identifying patterns for software scalability testing. Due to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.