Affiliation:
1. Brown University, Providence, USA
2. Purdue University, West Lafayette, USA
3. Carnegie Mellon University, Pittsburgh, USA
Abstract
Gradual verification, which supports explicitly partial specifications
and verifies them with a combination of static and dynamic checks, makes
verification more incremental and provides earlier feedback to developers.
While an abstract, weakest precondition-based approach to gradual verification
was previously proven sound, the approach did not provide sufficient guidance
for implementation and optimization of the required run-time checks. More
recently, gradual verification was implemented using symbolic execution
techniques, but the soundness of the approach (as with related static
checkers based on implicit dynamic frames) was an open question. This paper
puts practical gradual verification on a sound footing with a formalization
of symbolic execution, optimized run-time check generation, and run time
execution. We prove our approach is sound; our proof also covers a core
subset of the Viper tool, for which we are aware of no previous soundness result.
Our formalization enabled us to find a soundness bug in an implemented gradual
verification tool and describe the fix necessary to make it sound.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference30 articles.
1. Rob Arnold. 2010. C0, an Imperative Programming Language for Novice Computer Scientists. Master’s thesis. Department of Computer Science, Carnegie Mellon University. http://reports-archive.adm.cs.cmu.edu/anon/anon/usr/ftp/home/ftp/2010/CMU-CS-10-145.pdf
2. The Prusti Project: Formal Verification for Rust
3. Gradual Program Verification
4. Smallfoot: Modular Automatic Assertion Checking with Separation Logic
5. The VerCors Tool Set: Verification of Parallel and Concurrent Software
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Sound Gradual Verification with Symbolic Execution;Proceedings of the ACM on Programming Languages;2024-01-05