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

  • Home
  • SEARCH
  • 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 6572209
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T14:58:37+00:00 2026-05-25T14:58:37+00:00

Will Z3 be supporting AUFBV? For the following script: (set-logic AUFBV) (declare-fun x ()

  • 0

Will Z3 be supporting AUFBV?

For the following script:

(set-logic AUFBV)
(declare-fun x () (_ BitVec 16))
(declare-const t (Array (_ BitVec 16) (_ BitVec 16)))
(assert (= (select t #x0000) #x0000))

The online Z3 demo seems to be happy with the set-logic call, but then it complains about the sorts BitVec and Array. (Incidentally, the online demo seems to be happy with the set-logic call regardless of the logic name, even with bogus names such as (set-logic blarg).)

The SMT-Lib web-site does not mention neither UFBV nor AUFBV, but given their quantifier-free counterparts (QF_UFBV and QF_AUFBV), I was hoping Z3 would support AUFBV as well.

Needless to say, arrays play a very important role in practice. I think the AUFBV logic should remain decidable given the finiteness argument. It’d be really nice to see Z3 support it.

Thanks!

  • 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-05-25T14:58:37+00:00Added an answer on May 25, 2026 at 2:58 pm

    Z3 uses the set-logic command to configure itself. If a SMT script does not contain the set-logic then all theory solvers are enabled. If you remove the set-logic command from your script, then Z3 will work as expected.

    As you said, the AUFBV logic is decidable. However, the complexity is really high (NEXPTIME-complete). In theory, the Model Based Quantifier Instantiation (MBQI) module guarantees that Z3 is a decision procedure for this logic, but due to the high complexity, Z3 will fail (run without memory and/or time) in many scripts.

    The logic AUFBV is not in the list of officially supported logics. Z3 did not recognized it, and did not install any theory solver. So, to use this logic in Z3 3.1, you should not use the set-logic command.

    BTW, you don’t really need arrays. They can be encoded in UFBV using quantifiers.
    In many cases, if one is using quantifiers, it is best to avoid the array theory.
    The array theory solver in Z3 is optimized for quantifier-free problems.

    Regarding bogus commands such as (set-logic blarg), I added code for displaying a warning message saying the logic was not recognized, and Z3 will use all available theories. The modification will be available in Z3 3.2. I also included AUFBV in the list of officially supported logics.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm wondering what is the date when Microsoft will stop supporting .NET CF 1.0.
Will a query like this on a recordset work rs.open select * from table
Since MS will stop supporting anything before IE 8 soon, I am not sure
The company that I work for will soon (2Q) no longer be supporting SRS.
My company is supporting the following applications for an US client: IBM Mainframe ,
I have a lot of perl scripts. I will be supporting multiple sites which
I'm currently working on a upload script supporting larger uploads (~50 Mb) and I
Apple deprecated Java and will stop supporting it in the future. Assuming that Oracle
Will limiting a query to one result record, improve performance in a large(ish) MySQL
Will the code below work if the clock on the server is ahead of

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.