DeepAI AI Chat
Log In Sign Up

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

by   Felix A. Wolf, et al.

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.


page 1

page 2

page 3

page 4


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

Verification tools for effectful programming languages often rely on aut...

A Concurrent Program Logic with a Future and History

Verifying fine-grained optimistic concurrent programs remains an open pr...

Proving Hypersafety Compositionally

Hypersafety properties of arity n are program properties that relate n t...

Isabelle's Metalogic: Formalization and Proof Checker

Isabelle is a generic theorem prover with a fragment of higher-order log...

VST-A: A Foundationally Sound Annotation Verifier

An interactive program verification tool usually requires users to write...

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

Scripting proofs with tactics has been a tradition in interactive theore...

Proceedings Seventh International Workshop on Classical Logic and Computation

This special issue cover the seventh and last conference of the CL&C ser...