lh-l4v/tools/asmrefine
Zoltan Kocsis 788b4bd180 refactored irq_t structure (VER-1159) 2020-02-05 17:58:45 +11:00
..
ARM asmrefine: add arch setup licenses 2019-12-19 17:05:10 +11:00
ARM_HYP asmrefine: add arch setup licenses 2019-12-19 17:05:10 +11:00
RISCV64 asmrefine: add arch setup licenses 2019-12-19 17:05:10 +11:00
X64 asmrefine: add arch setup licenses 2019-12-19 17:05:10 +11:00
testfiles asmrefine: update tests 2019-12-19 17:05:10 +11:00
AsmSemanticsRespects.thy Handling of AsmStmt in c-parser, more tests. 2016-12-01 17:07:54 +11:00
CommonOps.thy asmrefine: Add support for 64-bit architectures. 2019-12-19 17:05:10 +11:00
CommonOpsLemmas.thy asmrefine: Add support for 64-bit architectures. 2019-12-19 17:05:10 +11:00
ExtraSpecs.thy asmrefine: update to Isabelle2019; reduce warnings 2019-06-13 16:22:33 +10:00
FieldAccessors.thy asmrefine: Add support for 64-bit architectures. 2019-12-19 17:05:10 +11:00
GhostAssertions.thy asmrefine: update to Isabelle2019; reduce warnings 2019-06-13 16:22:33 +10:00
GlobalsSwap.thy asmrefine: update to Isabelle2019; reduce warnings 2019-06-13 16:22:33 +10:00
GraphLang.thy asmrefine: Add support for 64-bit architectures. 2019-12-19 17:05:10 +11:00
GraphLangLemmas.thy Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
GraphProof.thy asmrefine: update to Isabelle2019; reduce warnings 2019-06-13 16:22:33 +10:00
GraphRefine.thy asmrefine: Add support for 64-bit architectures. 2019-12-19 17:05:10 +11:00
Makefile Isabelle2018: new AsmRefine session + test 2018-08-20 09:06:36 +10:00
ProveGraphRefine.thy refactored irq_t structure (VER-1159) 2020-02-05 17:58:45 +11: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 asmrefine: Add support for 64-bit architectures. 2019-12-19 17:05:10 +11: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.