Concise Outlines for a Complex Logic: A Proof Outline Checker for TaDA (Full Paper)

10/14/2020
by   Felix A. Wolf, et al.
0

Modern separation logics allow one to prove rich properties of intricate code, e.g. functional correctness and linearizability of non-blocking concurrent code. However, this expressiveness leads to a complexity that makes these logics difficult to apply. Manual proofs or proofs in interactive theorem provers consist of a large number of steps, often with subtle side conditions. On the other hand, automation with dedicated verifiers typically requires sophisticated proof search algorithms that are specific to the given program logic, resulting in limited tool support that makes it difficult to experiment with program logics, e.g. when learning, improving, or comparing them. Proof outline checkers fill this gap. Their input is a program annotated with the most essential proof steps, just like the proof outlines typically presented in papers. The tool then checks automatically that this outline represents a valid proof in the program logic. In this paper, we systematically develop a proof outline checker for the TaDA logic, which reduces the checking to a simpler verification problem, for which automated tools exist. Our approach leads to proof outline checkers that provide substantially more automation than interactive provers, but are much simpler to develop than custom automatic verifiers.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/17/2018

Meta-F*: Metaprogramming and Tactics in an Effectful Program Verifier

Verification tools for effectful programming languages often rely on aut...
research
07/05/2022

A Concurrent Program Logic with a Future and History

Verifying fine-grained optimistic concurrent programs remains an open pr...
research
09/15/2022

Proving Hypersafety Compositionally

Hypersafety properties of arity n are program properties that relate n t...
research
04/25/2021

Isabelle's Metalogic: Formalization and Proof Checker

Isabelle is a generic theorem prover with a fragment of higher-order log...
research
08/31/2019

VST-A: A Foundationally Sound Annotation Verifier

An interactive program verification tool usually requires users to write...
research
03/17/2018

Meta-F*: Proof Automation with SMT, Tactics, and Metaprograms

Scripting proofs with tactics has been a tradition in interactive theore...
research
03/14/2018

An Assertion-Based Program Logic for Probabilistic Programs

Research on deductive verification of probabilistic programs has conside...

Please sign up or login with your details

Forgot password? Click here to reset