Correctness Proof of a Distributed Implementation of Prolog by Means of Abstract State Machines

Lourdes Araujo · 2020

Abstract: This work provides both a speci cation and a proof of correctness for the system PDP (Prolog Distributed Processor) which make use of Abstract State Machines (ASMs). PDP is a recomputation-based model for parallel execution of Prolog on distributed memory. The system exploits OR parallelism, Independent AND parallelism as well as the combination of both. The veri cation process starts from the SLD trees, which de ne the execution of a Prolog program, and going through the parallel model, it arrives to the abstract machine designed for PDP, an extension of the WAM (Warren Abstract Machine), the most common sequential implementation of Prolog. The rst step of this process consists in de ning parallel SLD subtrees, which are a kind of partition of the SLD tree for programs whose clauses are annotated with parallelism. In a subsequent step the parallel execution approach of PDP is modeled by means of an OR TASK ASM. In this ASM each task is associated with the execution of a parallel SLD subtree. The execution of the parallel SLD subtree corresponding to each task is modeled by aNODE submachine which is an extension of the one proposed by Borger and Rosenzweig to verify the sequential execution of Prolog. Accordingly, the veri cation leans on the results of this work in order to avoid the veri cation of the common points with the sequential execution. The new elements of the execution due to parallelism exploitation are modeled at successive steps of the veri cation process, nally leading to the extended WAM which implements PDP. The PDP veri cation proves correctness for this particular system but it can readily be adapted to prove it in other related parallel systems exploiting AND, OR or both kinds of parallelism. 1

Read the paper · More papers on PaperTik