lh-l4v/tools/asmrefine
Rafal Kolanski 6c7798d512 asmrefine: add prefixes for testfiles/*_gref.thy
These currently work with an empty prefix as well, but using the name of
the theory file containing the respective install_C_file is more stable.

Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2022-02-22 18:24:02 +11:00
..
ARM asmrefine: review license for $ARCH/ArchSetup.thy 2020-03-13 14:38:47 +08:00
ARM_HYP asmrefine: review license for $ARCH/ArchSetup.thy 2020-03-13 14:38:47 +08:00
RISCV64 asmrefine: review license for $ARCH/ArchSetup.thy 2020-03-13 14:38:47 +08:00
X64 asmrefine: review license for $ARCH/ArchSetup.thy 2020-03-13 14:38:47 +08:00
testfiles asmrefine: add prefixes for testfiles/*_gref.thy 2022-02-22 18:24:02 +11:00
AsmSemanticsRespects.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
CommonOps.thy isabelle-2021: ad-hoc adjustions to preview 2021-09-30 16:53:17 +10:00
CommonOpsLemmas.thy isabelle-2021 asmrefine: make 64 bit clean 2021-09-30 16:53:17 +10:00
ExtraSpecs.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
FieldAccessors.thy isabelle-2021: update AsmRefine 2021-09-30 16:53:17 +10:00
GhostAssertions.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
GlobalsSwap.thy isabelle-2021: update AsmRefine 2021-09-30 16:53:17 +10:00
GraphLang.thy isabelle-2021: update AsmRefine 2021-09-30 16:53:17 +10:00
GraphLangLemmas.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
GraphProof.thy isabelle-2021: update AsmRefine 2021-09-30 16:53:17 +10:00
GraphRefine.thy isabelle-2021: update AsmRefine 2021-09-30 16:53:17 +10:00
Makefile licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
ProveGraphRefine.thy isabelle-2021: update AsmRefine 2021-09-30 16:53:17 +10:00
README.md READMEs: fix publication links 2021-08-25 11:22:05 +10:00
ROOT tools/asmrefine: update to Isabelle2020 2020-10-27 15:52:31 +10:00
SimplExport.thy asmrefine: use a prefix for constant lookups 2022-02-22 18:24:02 +11:00
TailrecPre.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08: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.