toplogo
Logga in

Semi-Automated Modular Formal Verification of Critical Software: Liveness and Completeness Thresholds


Centrala begrepp
The author presents a dissertation on semi-automated modular formal verification of critical software, focusing on liveness and completeness thresholds.
Sammanfattning
The content discusses the importance of correctness in critical software systems, covering safety and liveness properties. It explores deductive verification approaches, including type-based reasoning and program logics like Hoare logic. The concept of completeness thresholds for reducing unbounded proofs to bounded ones is introduced, along with techniques like predicate abstraction and bounded model checking. Various works in deductive liveness verification of concurrent software are reviewed, emphasizing the significance of proving termination and non-blocking concurrency.
Statistik
"February 2024" - Date of Dissertation Presentation. "ETH Zürich" - Supervising Institution. "VeriFast [99], VerCors [18], Viper [132], Why3 [70], VCC [43]" - Tools developed for deductive verification. "Liquid Haskell [178], Flux [114], CN [144]" - Tools using refinement types for automatic program verification. "CBMC [39], ESBMC [46]" - State-of-the-art software-model checkers using bounded model checking approach.
Citat
"The main selling point of bounded model checkers is that they manage to strike a compromise between usability and exhaustiveness." "Deductive verification (complemented by validation testing) is the best approach we have to truly ensure correctness of complex critical systems." "Bounded model checking (BMC) overcomes limitations by bounding both the length of executions and the input size."

Djupare frågor

How can completeness thresholds be effectively computed for more complex LTL formulas?

Completeness thresholds (CTs) play a crucial role in approximating unbounded proofs by bounded ones, especially for more complex Linear Temporal Logic (LTL) formulas. To effectively compute CTs for these intricate formulas, several strategies can be employed: Over-Approximation Techniques: Utilize over-approximation methods to bound the complexity of the formula and transition system. By abstracting certain aspects of the system or property, we can reduce the problem to a more manageable size while ensuring that essential characteristics are preserved. Property-Specific Analysis: Tailor the computation of CTs based on specific properties within the LTL formula. Different types of properties may require different approaches to determine suitable bounds for sound extrapolation from bounded proofs. Key Property Identification: Identify key properties or characteristics within the LTL formula that significantly impact its behavior and use them as focal points for computing CTs. Understanding which elements have a substantial influence allows for more targeted threshold calculations. Combination with Model Checking Techniques: Integrate CT computation with model checking techniques to leverage existing algorithms and tools designed for analyzing temporal logic properties in transition systems efficiently. Iterative Refinement: Employ an iterative refinement process where initial CT estimates are refined based on counterexamples generated during verification attempts, gradually converging towards tighter bounds that ensure soundness in unbounded scenarios.

How can deductive liveness verification techniques be applied to real-world scenarios beyond academic research?

Deductive liveness verification techniques offer a powerful approach to ensuring critical software systems' correctness by proving termination and progress guarantees formally rather than relying solely on testing or simulation-based methods. Here's how these techniques can be applied in real-world scenarios: Safety-Critical Systems Verification: Use deductive liveness verification to validate safety-critical software components such as medical devices, autonomous vehicles, aerospace systems, etc., where correctness is paramount. Concurrency Control Mechanisms: Apply these techniques to verify concurrency control mechanisms like locks, semaphores, condition variables in multi-threaded applications to prevent deadlocks and ensure progress under all conditions. Real-Time System Validation: Verify real-time systems where timely responses are crucial using deductive liveness analysis to guarantee deadlines met without unexpected delays due to blocking operations. 4.. ### ${Question3} Answer 3 here
0
visual_icon
generate_icon
translate_icon
scholar_search_icon
star