Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Fatal Error: BVConstEvaluator:division by zero error
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  4 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Jonas Wagner  
View profile  
 More options Oct 30 2012, 6:58 am
From: Jonas Wagner <jonas.wag...@epfl.ch>
Date: Tue, 30 Oct 2012 03:58:27 -0700 (PDT)
Local: Tues, Oct 30 2012 6:58 am
Subject: Fatal Error: BVConstEvaluator:division by zero error

Hi,

running the attached query using the latest version (revision 1668) of STP
yields to the following error message:

Fatal Error: BVConstEvaluator:division by zero error

Any ideas where this might come from?

Best,
Jonas

  failed_query.txt
6K Download

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Vijay Ganesh  
View profile  
 More options Oct 30 2012, 5:38 pm
From: Vijay Ganesh <hellovi...@gmail.com>
Date: Tue, 30 Oct 2012 17:38:14 -0400
Local: Tues, Oct 30 2012 5:38 pm
Subject: Re: Fatal Error: BVConstEvaluator:division by zero error
Hi Jonas,

A quick look at your constraint shows that it is possible for the
denominator of BVMOD (modulo operation) to take the value zero.

-Vijay.

--
Vijay Ganesh.
http://ece.uwaterloo.ca/~vganesh

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jonas Wagner  
View profile  
 More options Nov 1 2012, 12:18 pm
From: Jonas Wagner <jonas.wag...@epfl.ch>
Date: Thu, 1 Nov 2012 17:17:44 +0100
Local: Thurs, Nov 1 2012 12:17 pm
Subject: Re: Fatal Error: BVConstEvaluator:division by zero error

Hello,

thanks Vijay for your answer, and sorry for the late reply.

A quick look at your constraint shows that it is possible for the

> denominator of BVMOD (modulo operation) to take the value zero.

> Do you mean the b_1 value? This shouldn't be possible. Let me explain.

The query comes from verifying a program that computes the GCD of two
numbers. It goes as follows:

unsigned int gcd(unsigned int a, unsigned int b) {
    assume(a > 0 & a < 20 & b > 0 & b < a);

    int old_a = a, old_b = b;

    while (b != 0) {
        int r = a % b;
        a = b;
        b = r;
    }

    // Check that a is indeed a divisor
    assert((old_a % a == 0) & (old_b % a == 0));

    // Check that no other divisor is larger
    int other = NONDET_INT();
    assume(other > 0);

    // FIXME: STP crashes on this
    assert((other <= a) | (old_a % other != 0) | (old_b % other != 0));

    return a;

}

If I'm not mistaken, this precludes any possibility of a divisor being
zero. Also, I believe that the constraint is reflected faithfully in the
query:
- The first ASSERT in the query corresponds to the first assume statement
in the program
- The second ASSERT seems to be the condition for exiting the loop
- The fourth ASSERT corresponds to assume(other > 0)
- The final ASSERT corresponds to the last assert statement

I've simplified the query a bit by reducing the number of loop iterations;
it's attached again.

Also, note that this program is verified if we use boolector or Z3, it only
fails when using STP (but let's add that STP is much faster than the others
;-))

Cheers,
Jonas

  failing_query.txt
4K Download

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Vijay Ganesh  
View profile  
 More options Nov 1 2012, 6:32 pm
From: Vijay Ganesh <hellovi...@gmail.com>
Date: Thu, 1 Nov 2012 18:32:16 -0400
Local: Thurs, Nov 1 2012 6:32 pm
Subject: Re: Fatal Error: BVConstEvaluator:division by zero error

Hi Jonas,

Okay, I will have to get back to you on this. I am currently traveling
till Nov 12th. I will look into this when I get back.

-Vijay.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic