Proving Equivalence Between Imperative and MapReduce Implementations Using Program Transformations

03/27/2018
by   Bernhard Beckert, et al.
0

Distributed programs are often formulated in popular functional frameworks like MapReduce, Spark and Thrill, but writing efficient algorithms for such frameworks is usually a non-trivial task. As the costs of running faulty algorithms at scale can be severe, it is highly desirable to verify their correctness. We propose to employ existing imperative reference implementations as specifications for MapReduce implementations. To this end, we present a novel verification approach in which equivalence between an imperative and a MapReduce implementation is established by a series of program transformations. In this paper, we present how the equivalence framework can be used to prove equivalence between an imperative implementation of the PageRank algorithm and its MapReduce variant. The eight individual transformation steps are individually presented and explained.

READ FULL TEXT

page 11

page 12

page 13

research
01/26/2018

Relational Equivalence Proofs Between Imperative and MapReduce Algorithms

MapReduce frameworks are widely used for the implementation of distribut...
research
02/21/2019

Proceedings Fifth International Workshop on Rewriting Techniques for Program Transformations and Evaluation

This volume contains the formal proceedings of the 5th International Wor...
research
08/30/2022

Program Equivalence in an Untyped, Call-by-value Lambda Calculus with Uncurried Recursive Functions

We aim to reason about the correctness of behaviour-preserving transform...
research
09/30/2015

Model-independent comparison of simulation output

Computational models of complex systems are usually elaborate and sensit...
research
09/07/2023

Assume but Verify: Deductive Verification of Leaked Information in Concurrent Applications (Extended Version)

We consider the problem of specifying and proving the security of non-tr...
research
05/29/2021

Formally Validating a Practical Verification Condition Generator (extended version)

A program verifier produces reliable results only if both the logic used...
research
01/25/2023

Proving Correctness of Parallel Implementations of Transition System Specifications

The overall problem addressed in this paper is the long-standing problem...

Please sign up or login with your details

Forgot password? Click here to reset