Summary: GERHARD SCHELLHORN AND WOLFGANG AHRENDT
THE WAM CASE STUDY:
VERIFYING COMPILER CORRECTNESS FOR PROLOG WITH
This chapter describes the first half of the formal, machine-supported verifi-
cation of a Prolog compiler with the KIV system.
Our work is based on the mathematical analysis given in (Börger and
Rosenzweig, 1995), where an operational semantics (an "interpreter") for
Prolog is defined as an Abstract State Machine (ASM). This interpreter is
then transformed in 12 systematic refinements to an ASM which executes
machine code of the Warren Abstract Machine (WAM).
The goal of our case study was to formalize ASMs and the proof tech-
niques given in (Börger and Rosenzweig, 1995), and to give machine-checked
correctness proofs for the correctness of the refinements. So far we have ver-
ified the first 6 refinements, and we will give a detailed account on the prob-
lems we found in verification.
Our motivations for beginning such a large case study -- based on our
current experience we estimate the necessary effort to develop a verified com-
piler to be around a person year -- are the following