Giter Club home page Giter Club logo

Comments (2)

peterschrammel avatar peterschrammel commented on July 3, 2024

Deactivating NORMALISE_CONSTANT_TESTS in util/simplify_expr_int.cpp:1907 makes the problem disappear

from cbmc.

tautschnig avatar tautschnig commented on July 3, 2024

I'm not convinced the claims about the models or the bug here are correct. I will assume that && has higher precedence than || (as is the case in C). With this in mind, and reordering operands a bit:

f.a <= -1 && -((signed __CPROVER_bitvector[33])f.a) <= 2147483648 ||
f.a <= 2147483646 && -((signed __CPROVER_bitvector[33])f.a) <= -1 ||
f.a <= 2147483647 && -((signed __CPROVER_bitvector[33])f.a) <= -2147483647 ||
FALSE && FALSE ||
FALSE && FALSE

vs.

!(f.a >= 0) && !(-((signed __CPROVER_bitvector[33])f.a) >= 2147483649) ||
!(f.a >= 2147483647) && !(-((signed __CPROVER_bitvector[33])f.a) >= 0) ||
!(-((signed __CPROVER_bitvector[33])f.a) >= -2147483646)

Note that f.a <= 2147483647 was removed by the simplifier, because it is trivially true for signed 32-bit integers. Then I'd conclude that both expressions evaluate to true for all values of f.a other than 0.

Resolving, but please feel free to reopen if my reasoning is flawed.

from cbmc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.