Abstract interpretation provides advanced techniques to infer numerical invariants on programs. There is an abundant literature about numerical abstract domains that operate on scalar variables. This work deals with lifting these techniques to a realistic C memory model. We present an abstract memory functor that takes as argument any standard numerical abstract domain, and builds a memory abstract domain that finely tracks properties about memory contents, taking into account union types, pointer arithmetic and type casts. This functor is implemented and verified inside the Coq proof assistant with respect to the CompCert compiler memory model. Using the Coq extraction mechanism, it is fully executable and used by the Verasco C static analyzer.
Tue 20 SepDisplayed time zone: Osaka, Sapporo, Tokyo change
16:50 - 17:40
|Constructive Galois Connections: Taming the Galois Connection Framework for Mechanized Metatheory
|An Abstract Memory Functor for Verified C Static Analyzers
Sandrine Blazy University of Rennes 1, France, Vincent Laporte IMDEA Software Institute, Spain, David Pichardie ENS Rennes, FranceDOI