-
Notifications
You must be signed in to change notification settings - Fork 44
Project Topics in Progress
Contact: Matthias
- Develop an extension of Boogie that allows us to model concurrent programs
- Translate C programs into the (extended Boogie)
Contact: Matthias
Transfer idea of 2016FM - David,Kesseli,Kroening,Lewis - Danger Invariants to polyhedral invariants and implement the approach in Ultimate.
Contact: Christian and Matthias
Link to project page
Link to the new webpage
We fail to prove that the following program is incorrect, because we have to unroll the loop 10000 times until we find the error.
i := 0;
while (i<10000) {
i++;
}
assert i==23;
Develop techniques that let us replace the loop by i := 10000
and find the error immediately. See e.g., 2015FMSD - Kroening, Lewis, Weissenbacher - Under-Approximating Loops in C Programs for Fast Counterexample Detection,
2012ISSTA - Strejcek,Trtik - Abstracting Path Conditions,
2010CAV - Bozga,Iosif,Konecny - Fast Acceleration of Ultimately Periodic Relations
Contact: Alexander
The memory model that is currently used by the C-to-Boogie-translation represents C's heap as one large Boogie array (to be precise one per Boogie type). This can cause inefficiency in various places in the verification. We want to apply pointer analysis to be able to split the heap representation into many arrays where we can always be sure which pointer accesses which array.
Contact: Alexander
Say we have a way of proving correctness of a program (+ property) given its data flow graph (DFG) which we call data flow proofs.
Given: a parallel program (+ property) P as a set of control flow graphs (one per thread)
Which ways to define the DFG of P are there? What is their effect on the proving power of the data flow proofs?
A trivial way that would retain full proving power is to take the DFG of the interleaving semantics (parallel product) of P (i.e. the CFG that represents all interleavings of the single threads' executions). However the parallel product's size is exponential in the number of threads. Is there a way to avoid this blow-up (at least in some cases)?
- Home
- Ultimate Development
- Ultimate Build System
- Documentation
- Project Topics