ACM Transactions on Programming Languages and Systems · 2021 · 50 citations · 39 references
ComputingComputer ScienceAlgorithmsFormal MethodsProgramming LanguagesControl-flow AnalysisData-flow AnalysisDeductive VerificationType SystemsDynamic Memory AllocationHorn ClausesMemory AllocationProgram Verification
Reduction to satisfiability of constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. Current CHC-based methods, however, do not work very well for pointer-manipulating programs, especially those with dynamic memory allocation. This article presents a novel reduction of pointer-manipulating Rust programs into CHCs, which clears away pointers and memory states by leveraging Rust’s guarantees on permission. We formalize our reduction for a simplified core of Rust and prove its soundness and completeness. We have implemented a prototype verifier for a subset of Rust and confirmed the effectiveness of our method.
39
The Semantics of Predicate Logic as a Programming Language
M. H. van Emden, Robert Kowalski · Journal of the ACM · 1976 · 1.5K citations · Full text
Humanities, Computer Science, Logic +16
Points-to analysis in almost linear time
Bjarne Steensgaard · 1996 · 1.1K citations · Full text
The existence of refinement mappings
Martı́n Abadi, Leslie Lamport · Theoretical Computer Science · 1991 · 734 citations
ZEUS: Analyzing Safety of Smart Contracts
Sukrit Kalra, Seep Goel, Mohan Dhawan et al. · 2018 · 710 citations · Full text
Trevor Jim, J. Greg Morrisett, Dan Grossman et al. · 2002 · 618 citations