Formalizing Semantics with an Automatic Program Verifier [chapter]

Martin Clochard, Jean-Christophe Filliâtre, Claude Marché, Andrei Paskevich
2014 Lecture Notes in Computer Science  
A common belief is that formalizing semantics of programming languages requires the use of a proof assistant providing (1) a specification language with advanced features such as higher-order logic, inductive definitions, type polymorphism, and (2) a corresponding proof environment where higher-order and inductive reasoning can be performed, typically with user interaction. In this paper we show that such a formalization is nowadays possible inside a mostly-automatic program verification
more » ... ment. We substantiate this claim by formalizing several semantics for a simple language, and proving their equivalence, inside the Why3 environment. ⋆ Work partly supported by the Bware project (ANR-12-INSE-0010, http://bware. lri.fr/) and the Joint Laboratory ProofInUse (ANR-13-LAB3-0007, http://www. spark-2014.org/proofinuse) of the French national research organization
doi:10.1007/978-3-319-12154-3_3 fatcat:arhini4lrjdldln5bimko5scwm