To: seminaire-gallium-moscova@inria.fr From: Francois.Pottier@inria.fr Subject: SEM - INRIA : Gallium - 29/08/07 - Paris - FR Vous pouvez vous abonner à nos annonces de séminaires http://pauillac.inria.fr/seminaires/ S E M I N A I R E __ / _` _ / / o /| /| __ __ __ __ _ _ / ) __) / / / / / /\/| ----- / |/ | / )(_ / / ) ) ) __) (___/ (_/ (_ (_ / (__/ / | / | (__/ __)(_ (__/ (_/ (_/ I N R I A - Rocquencourt Amphi Turing du bâtiment 1 Mercredi 29 aout, 10h30 -------------- Andrew Tolmach -------------- Portland State University and INRIA ================================================= Proving Properties of Imperative Gallina Programs ================================================= I will describe preliminary work on a new approach to proving properties of simple imperative pointer programs. The basic idea is to represent such programs via a shallow embedding into a monadic, first-order fragment of the Coq term language, Gallina. Proofs of program properties can thus be performed directly on Gallina terms using the full power and flexibility of Coq. In particular, it is possible to mix reasoning at the level of individual (monadic) steps with reasoning about the overall effect of larger chunks of code. With a little hackery, we can use the existing Coq extraction mechanism to produce imperative Caml code for our programs. Alternatively, we can define a deep embedding syntax and operational semantics for our imperative language, and prove the semantic equivalence of programs expressed at shallow and deep levels. We anticipate using this latter approach to connect this proof architecture with the Compcert certified compiler chain. In this informal talk, I will sketch some examples of proofs in the shallow embedding, including one for a very simple mark-and-sweep garbage collector. I'll describe the various approaches for connecting the Gallina code with concrete executables. Also, I'll briefly contrast this approach with existing approaches, including those based on VC generation (e.g. Caduceus) and on direct proofs on the deep embedding (e.g., the work by Appel, Blazy, et al.).