Formal Verification of Memory Properties

seplog

We are interested in the formal verification of memory properties of low-level software. For this purpose, we have developed in the Coq proof assistant formalizations of separation logic, as presented in the survey by John C. Reynolds. We have applied these formalizations to several use-cases, including the verification of the heap manager of the Topsy operating system and the verification of cryptographic primitives written in SmartMIPS assembly (Montgomery multiplication, Montgomery exponentiation, BBS pseudorandom number generator). Besides the formalizations of separation logic in themselves, these experiments led us to develop potentially reusable formal tools such as an original verifier for separation logic triples (triples written in a fragment of separation logic with lists) or a small compiler preserving separation logic triples (a formalization of this article by Ando Saabas and Tarmo Uustalu). We also explore alternative approaches to verification of memory properties such as model-checking using the Spin model-checker.

  1. Certifying Assembly with Formal Cryptographic Proofs: the Case of BBS (presented at the AVoCS 2009 workshop)
  2. Overview poster (in Japanese) on formal verification of implementation of cryptographic primitives
  3. A Certified Verifier for a Fragment of Separation Logic (Computer Software 25(3):135-147, revised version of the PPL 2007 paper)
  4. A Certified Verifier for a Fragment of Separation Logic (presented at the PPL 2007 workshop)
  5. Formal Verification of an implementation of the Montgomery multiplication (presented at the ASIAN 2006 conference, revised version of the JSSST 2006 paper)
  6. Application of seplog to a subset of SmartMIPS (presented at the JSSST 2006 workshop)
  7. Spin model of the Topsy operating system (presented at the JSSST 2006 workshop)
  8. Formal Verification of the heap manager of an operating system using separation logic (presented at the ICFEM 2006 conference, revised version of the SPACE 2006 paper)
  9. Verification of the heap manager of an operating system using separation logic (presented at the SPACE 2006 workshop, slides)
  10. Overview paper (presented at the JSSST 2005, slides)
  1. Coq archives: last version, 31/08/06 (ASIAN 2006), 04/08/06 (ICFEM 2006), 10/01/06 (SPACE 2006)
  2. Spin archive: 07/08/06 (JSSST 2006)

Contact information: reynald dot affeldt at aist dot go dot jp