Giter VIP home page Giter VIP logo

ultimate's Introduction

Ultimate

Build Status Jenkins Build Status Travis LGPL License ZenHub

Ultimate is a program analysis framework. Ultimate consists of several plugins that perform steps of a program analysis, e.g., parsing source code, transforming programs from one representation to another, or analyzing programs. Toolchains of these plugins can perform complex tasks, e.g., verify that a C program fulfills a given specification.

The official website includes a web interface which allows you to use several toolchains online, a list of all developers, and a list of awards Ultimate received over the years.

The available documentation can be found in our wiki.

You can download the latest release from GitHub's release page or try our nightly builds.

Developers

The main active developers of Ultimate are:

  • Matthias Heizmann (@Heizmann)
  • Daniel Dietsch (@danieldietsch)
  • Dominik Klumpp (@maul-esel)
  • Frank Schüssele (@schuessf)

You can find an extensive list of past and current contributors on our website.

Verification Tools (SV-COMP)

Among other plugins and libraries, Ultimate contains several program verification tools with which we participate in the International Competition on Software Verification (SV-COMP). In this competition, various fully-automatic verifiers and bug finding tools from academia and industry compete, to see which tool can successfully analyse the most programs wrt. a given property. We currently compete with 4 tools: Automizer, Taipan, Kojak and GemCutter.

Ultimate Automizer

Contact: Matthias Heizmann

Automizer uses trace abstraction to generalize infeasibility proofs for single program traces to Floyd-Hoare automata that cover larger parts of the program. For concurrency, it uses a Petri-net-based automata model.

More Information & Web Interface

Publications about Automizer

To cite:

@inproceedings{sas09:trace-abstraction,
  author    = {Matthias Heizmann and Jochen Hoenicke and Andreas Podelski},
  editor    = {Jens Palsberg and Zhendong Su},
  title     = {Refinement of Trace Abstraction},
  booktitle = {Static Analysis, 16th International Symposium, {SAS} 2009, Los Angeles,
               CA, USA, August 9-11, 2009. Proceedings},
  series    = {Lecture Notes in Computer Science},
  volume    = {5673},
  pages     = {69--85},
  publisher = {Springer},
  year      = {2009},
  doi       = {10.1007/978-3-642-03237-0\_7},
}

Ultimate Taipan

Contact: Daniel Dietsch

Taipan uses abstract interpretation with various domains to find loop invariants for path programs. Proofs for path programs are combined using automata operations on Floyd-Hoare-automata. If abstract interpretation cannot find a proof, trace abstraction is used. For concurrency, it uses an explicit product of finite automata.

More Information & Web Interface

Publications about Taipan

To cite:

@inproceedings{sas17:loop-inv-from-ctex,
  author    = {Marius Greitschus and Daniel Dietsch and Andreas Podelski},
  editor    = {Francesco Ranzato},
  title     = {Loop Invariants from Counterexamples},
  booktitle = {Static Analysis - 24th International Symposium, {SAS} 2017, New York,
               NY, USA, August 30 - September 1, 2017, Proceedings},
  series    = {Lecture Notes in Computer Science},
  volume    = {10422},
  pages     = {128--147},
  publisher = {Springer},
  year      = {2017},
  doi       = {10.1007/978-3-319-66706-5\_7}
}

Ultimate Kojak

Contact: Frank Schüssele

Kojak analyses programs using an extension of the Lazy Interpolants CEGAR scheme.

More Information & Web Interface

Publications about Kojak

To cite:

@inproceedings{tacas14:kojak,
  author    = {Evren Ermis and Alexander Nutz and Daniel Dietsch and Jochen Hoenicke and Andreas Podelski},
  editor    = {Erika {\'{A}}brah{\'{a}}m and Klaus Havelund},
  title     = {Ultimate Kojak - (Competition Contribution)},
  booktitle = {Tools and Algorithms for the Construction and Analysis of Systems - 20th International Conference, {TACAS} 2014,
               Held as Part of the European Joint Conferences on Theory and Practice of Software, {ETAPS} 2014, Grenoble, France, April 5-13, 2014. Proceedings},
  series    = {Lecture Notes in Computer Science},
  volume    = {8413},
  pages     = {421--423},
  publisher = {Springer},
  year      = {2014},
  doi       = {10.1007/978-3-642-54862-8\_36},
}

Ultimate GemCutter

Contact: Dominik Klumpp

GemCutter is a verifier for concurrent programs based on commutativity, i.e., the observation that for certain statements from different threads, the execution order does not matter. It integrates partial order reduction algorithms (that take advantage of commutativity) with a trace abstraction-based CEGAR scheme.

Publications about GemCutter

To cite:

@inproceedings{pldi22:sound-sequentialization,
  author    = {Azadeh Farzan and Dominik Klumpp and Andreas Podelski},
  editor    = {Ranjit Jhala and Isil Dillig},
  title     = {Sound sequentialization for concurrent program verification},
  booktitle = {{PLDI} '22: 43rd {ACM} {SIGPLAN} International Conference on Programming
               Language Design and Implementation, San Diego, CA, USA, June 13 - 17, 2022},
  pages     = {506--521},
  publisher = {{ACM}},
  year      = {2022},
  doi       = {10.1145/3519939.3523727},
}

ultimate's People

Contributors

heizmann avatar danieldietsch avatar alexandernutz avatar maul-esel avatar schillic avatar schuessf avatar schaetzc avatar greitsch avatar langenfeld avatar henkele avatar jonaswerner avatar hauff avatar breee avatar zabuzard avatar philippmue avatar confectio avatar mostafa-mahmoud avatar ebbima avatar buehlery avatar rohlandm avatar maxbarth95 avatar numairmansur avatar liyong31 avatar lawki avatar naouarmehdi avatar nuberd avatar gschievelbein avatar dkuechler avatar dennis95 avatar bb182 avatar

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.