Machine-Checkable Correctness Proofs for Intra-procedural Dataflow Analyses
نویسندگان
چکیده
This paper describes our experience using the interactive theorem prover Athena for proving the correctness of abstract interpretation-based dataflow analyses. For each analysis, our methodology requires the analysis designer to formally specify the property lattice, the transfer functions, and the desired modeling relation between the concrete program states and the results computed by the analysis. The goal of the correctness proof is to prove that the desired modeling relation holds. The proof allows the analysis clients to rely on the modeling relation for their own correctness. To reduce the complexity of the proofs, we separate the proof of each dataflow analysis into two parts: a generic part, proven once, independent of any specific analysis; and several analysis-specific conditions proven in Athena.
منابع مشابه
Machine-checkable Correctness Proofs
This talk will present an effort to formalize Taylor Models in the Coq proof assistant. Machinecheckable correctness proofs are facilitated by an abstract viewpoint: Taylor models can be generalized to balls in the Chebyshev metric. Extensions of elementary functions are then explained as compositions of such balls. This approach also accommodates other polynomial approximation methods than Tay...
متن کاملShorter arithmetization of nondeterministic computations
Arithmetizing computation is a crucial component of many fundamental results in complexity theory, including results that gave insight into the power of interactive proofs, multi-prover interactive proofs, and probabilistically-checkable proofs. Informally, an arithmetization is a way to encode a machine’s computation so that its correctness can be easily verified via few probabilistic algebrai...
متن کاملOracle Semantics for Concurrent Separation Logic (preliminary version)
We define in Coq with machine-checked proofs a modular operational semantics for Concurrent C minor, a language with shared memory, spawnable threads, and firstclass locks. By modular we mean that one can reason about sequential control and data-flow knowing almost nothing about concurrency, and one can reason about concurrency knowing almost nothing about sequential control and dataflow constr...
متن کاملOracle Semantics for Concurrent Separation Logic
We define (with machine-checked proofs in Coq) a modular operational semantics for Concurrent C minor—a language with shared memory, spawnable threads, and first-class locks. By modular we mean that one can reason about sequential control and data-flow knowing almost nothing about concurrency, and one can reason about concurrency knowing almost nothing about sequential control and data-flow con...
متن کاملFrom Traces To Proofs: Proving Concurrent Program Safe
Nondeterminism in scheduling is the cardinal reason for difficulty in proving correctness of concurrent programs. A powerful proof strategy was recently proposed [6] to show the correctness of such programs. The approach captured dataflow dependencies among the instructions of an interleaved and error-free execution of threads. These data-flow dependencies were represented by an inductive data-...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 141 شماره
صفحات -
تاریخ انتشار 2005