Proof Engineering with Predicate Transformer Semantics

08/17/2022
by   Christa Jenkins, et al.
0

We present a lightweight, open source Agda framework for manually verifying effectful programs using predicate transformer semantics. We represent the abstract syntax trees (AST) of effectful programs with a generalized algebraic datatype (GADT) AST, whose generality enables even complex operations to be primitive AST nodes. Users can then assign bespoke predicate transformers to such operations to aid the proof effort, for example by automatically decomposing proof obligations for branching code. Our framework codifies and generalizes a proof engineering methodology used by the authors to reason about a prototype implementation of LibraBFT, a Byzantine fault tolerant consensus protocol in which code executed by participants may have effects such as updating state and sending messages. Successful use of our framework in this context demonstrates its practical applicability.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
05/18/2022

An approach to translating Haskell programs to Agda and reasoning about them

We are using the Agda programming language and proof assistant to formal...
research
03/23/2018

SENATE: A Permissionless Byzantine Consensus Protocol in Wireless Networks

The blockchain technology has achieved tremendous success in open (permi...
research
02/26/2019

The Attack of the Clones against Proof-of-Authority

In this paper, we explore vulnerabilities and countermeasures of the rec...
research
06/10/2020

S-semantics – an example

The s-semantics makes it possible to explicitly deal with variables in p...
research
09/28/2022

Consensus-Free Spreadsheet Integration

We describe a method for merging multiple spreadsheets into one sheet, a...
research
05/02/2021

Synthesizing Abstract Transformers

This paper addresses the problem of creating abstract transformers autom...
research
01/30/2023

Looped Transformers as Programmable Computers

We present a framework for using transformer networks as universal compu...

Please sign up or login with your details

Forgot password? Click here to reset