Relational Equivalence Proofs Between Imperative and MapReduce Algorithms

01/26/2018
by   Bernhard Beckert, et al.
0

MapReduce frameworks are widely used for the implementation of distributed algorithms. However, translating imperative algorithms into these frameworks requires significant structural changes to the algorithm. As the costs of running faulty algorithms at scale can be severe, it is highly desirable to verify the correctness of the translation, i.e., to prove that the MapReduce version is equivalent to the imperative original. We present a novel approach for proving equivalence between imperative and MapReduce algorithms based on partitioning the equivalence proof into a sequence of equivalence proofs between intermediate programs with smaller differences. Our approach is based on the insight that two kinds of sub-proofs are required: (1) uniform transformations changing the controlflow structure that are mostly independent of the particular context in which they are applied; and (2) context-dependent transformations that are not uniform but that preserve the overall structure and can be proved correct using coupling invariants. We demonstrate the feasibility of our approach by evaluating it on two prototypical algorithms commonly used as examples in MapReduce frameworks: k-means and PageRank. To carry out the proofs, we use the interactive theorem prover Coq with partial proof automation. The results show that our approach and its prototypical implementation based on Coq enables equivalence proofs of non-trivial algorithms and could be automated to a large degree.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
03/27/2018

Proving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations

Distributed programs are often formulated in popular functional framewor...
research
04/06/2020

Formal Verification of Flow Equivalence in Desynchronized Designs

Seminal work by Cortadella, Kondratyev, Lavagno, and Sotiriou includes a...
research
10/02/2018

Proof nets, coends and the Yoneda isomorphism

Proof nets provide permutation-independent representations of proofs and...
research
05/18/2022

Leapfrog: Certified Equivalence for Protocol Parsers

We present Leapfrog, a Coq-based framework for verifying equivalence of ...
research
01/27/2020

Operationally-based Program Equivalence Proofs using LCTRSs

We propose an operationally-based deductive proof method for program equ...
research
07/07/2020

An Embellished Account of Agafonov's Proof of Agafonov's Theorem

We give an account of Agafonov's original proof of his eponymous theorem...
research
08/01/2023

Datapath Verification via Word-Level E-Graph Rewriting

Formal verification of datapath circuits is challenging as they are subj...

Please sign up or login with your details

Forgot password? Click here to reset