lh-l4v/tools/asmrefine
Matthew Brecknell e3d209eb24 Isabelle2017: update SimplExportAndRefine for RC0 2017-10-30 12:23:26 +11:00
..
testfiles Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
AsmSemanticsRespects.thy Handling of AsmStmt in c-parser, more tests. 2016-12-01 17:07:54 +11:00
CommonOps.thy asmrefine: revert simplification of ghost_assertions 2017-08-09 17:02:50 +10:00
CommonOpsLemmas.thy Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
ExtraSpecs.thy Support extra specs, ctzl, clzl in SimplExport. 2017-07-05 15:27:38 +10:00
FieldAccessors.thy Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
GhostAssertions.thy license-tool: missing license headers + .licenseignore [VER-551] 2016-07-14 16:34:31 +10:00
GlobalsSwap.thy x64: merge master 2017-07-21 11:27:12 +10:00
GraphLang.thy Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
GraphLangLemmas.thy Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
GraphProof.thy Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
GraphRefine.thy Isabelle2017: update SimplExportAndRefine for RC0 2017-10-30 12:23:26 +11:00
ProveGraphRefine.thy Support extra specs, ctzl, clzl in SimplExport. 2017-07-05 15:27:38 +10:00
README.md asmrefine: add one README.md, update another. 2017-08-16 18:15:21 +10:00
SimplExport.thy Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
TailrecPre.thy Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11: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.