lh-l4v/tools/asmrefine
Japheth Lim 211fbe6d28 asmrefine: print running time for each function's graph proof
These summary statistics should be useful while not being too verbose.
2019-05-29 14:23:29 +10:00
..
testfiles Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
AsmSemanticsRespects.thy Handling of AsmStmt in c-parser, more tests. 2016-12-01 17:07:54 +11:00
CommonOps.thy globally use session-qualified imports; add Lib session 2018-08-20 09:06:34 +10:00
CommonOpsLemmas.thy globally use session-qualified imports; add Lib session 2018-08-20 09:06:34 +10:00
ExtraSpecs.thy globally use session-qualified imports; add Lib session 2018-08-20 09:06:34 +10:00
FieldAccessors.thy globally use session-qualified imports; add Lib session 2018-08-20 09:06:34 +10:00
GhostAssertions.thy Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
GlobalsSwap.thy globally use session-qualified imports; add Lib session 2018-08-20 09:06:34 +10:00
GraphLang.thy Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
GraphLangLemmas.thy Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
GraphProof.thy Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
GraphRefine.thy Isabelle2018: new "op x" syntax; now is "(x)" 2018-08-20 09:06:35 +10:00
Makefile Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
ProveGraphRefine.thy asmrefine: print running time for each function's graph proof 2019-05-29 14:23:29 +10:00
README.md asmrefine: add one README.md, update another. 2017-08-16 18:15:21 +10:00
ROOT Isabelle2018: Lib update 2018-08-20 09:06:36 +10:00
SimplExport.thy Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
TailrecPre.thy globally use session-qualified imports; add Lib session 2018-08-20 09:06:34 +10:00

README.md

Assembly Refinement Toolchain

This toolchain is used to validate the translation of C programs into compiled binaries. The semantics of the compiled binaries and the initial C programs are compared via the external SydTV tool. These tools are used to convert the Isabelle C semantics of a program into an exported SydTV-GL representation, to verify that the exported program is a refinement of the starting semantics, and to replay SydTV proofs in Isabelle/HOL.

These theories are generic. They are specialised to the case of seL4 in the proof directory.

An overview of the full proof is given with the SydTV tool. It is also described in the PLDI '13 paper.

Important Theories

The GraphLang theory introduces an Isabelle/HOL representation of SydTV-GL programs, and a parser for them.

The SimplExport theory contains apparatus for exporting the C semantics of a program (created by the C parser and expressed in the Simpl language) into a textual SydTV-GL representation.

The ProveGraphRefine theory introduces proof automation for proving the correctness of the export process of SimplExport.

The GraphProof theory introduces proof rules needed to replay external SydTV refinement proofs within Isabelle/HOL. This is a work in progress.