Giter Club home page Giter Club logo

Comments (4)

zvonimir avatar zvonimir commented on June 2, 2024

I have studied a little bit what Boogie supports when it comes to types, and here is one simple example of how to maybe define our memory model in this case:

type ptr = bv64;
type bvtype t;
const unique type32 : bvtype bv32;
const unique type8 : bvtype bv8;

procedure main() 
{
  var M: <t>[ptr, bvtype t] t;
  M[0bv64, type32] := 10bv32;
  M[1bv64, type8] := 20bv8;

  assert M[0bv64, type32] == 10bv32;
  assert M[1bv64, type8] == 20bv8;

  return;
}

from smack.

zvonimir avatar zvonimir commented on June 2, 2024

I guess we should close this one now that bit-vectors are implemented.

from smack.

shaobo-he avatar shaobo-he commented on June 2, 2024

Hi guys,

There is obviously a scalability issue of SMACK when it is applied on DeviceDriver64 category of SVCOMP benchmarks that requires reasoning about bit-vectors. I think it would be good to improve our support for bit-vectors in order to fix this issue.

I manually inspected some benchmarks[1] and it seems that the number of variables requiring bit-vectors is limited (mainly flags[2]). So I think maybe a dependence analysis could allow us to use bit-vector on these variables while model others as integers though interprocedural support and pointer aliasing could be a big problem. Moreover, Akash's paper, Powering the Static Driver Verifier using Corral also provides a very reasonable solution. I remember you have tried it while it might not work well.

Please let me know your thoughts.

Thanks,
Shaobo

from smack.

michael-emmi avatar michael-emmi commented on June 2, 2024

This issue (support for bit-vectors) is certainly closed since SMACK supports bit-vectors now.

Improving the scalability of bit-vector support is a separate issue: #149.

from smack.

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.