LRI
Équipe VALS
Bât 650 Ada Lovelace, Université Paris Sud
Rue Noetzlin, 91190 Gif-sur-Yvette, France
Clean -- Isabelle Club Meeting on 11/09/2019

Personnes présentes

  • Thibaut Balabonski
  • Frédéric Boulanger
  • Safouan Taha
  • Benoit Valiron
  • Burkhart Wolff

Presentators

  • Burkhart Wolff

Summary:

Bu presented Clean that is a simple C11-like language together with an abstract monads-based semantics. It is implemented within Isabelle/HOL and it handles WP reasoning.

State of the art

  • IMP2 developed by Peter Lammich and Simon Wimmer is an extension of the IMP language coming with the Isabelle distribution and the Concrete Semantics tutorial. IMP2 is a C-like language combined with a VCG. Even small, IMP2 has a concrete syntax where the Clean language only comes with an abstract syntax in the sense that it fully adopts a shallow embedding within Isabelle/HOL.
  • Autocorres gives means to configure a translator of C code into Isabelle/HOL. Precise parameters on the targeted processor and the memory architecture must be tuned when generating such a translator. Autocorres is a complete framework but it is a heavy one.

Clean language

Clean (pronounced as: “C lean” or “Céline” [selin]) is a minimalistic imperative language with C-like control-flow operators. It comprises:

  • C-like control flow with break and return.
  • global variables.
  • function calls (seen as Monad-executions) with side-effects, recursion and local variables.
  • cartouche syntax

Clean semantics

Clean is based on a shallow embedding into State Exception Monads theory. The state-space is fully HOL-typed and uses an incremental construction based on extensible records. This incremental construction handles sequences of variable/function declarations and enables incremental verification.

Clean will be submitted to the AFP very soon.