lh-l4v/tools/asmrefine
Gerwin Klein 52024490d5 asmrefine: remove obsolete simp rules
These are either not necessary any more or are now in the simpset by
default.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-03-29 08:38:25 +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 isabelle2021-1: AsmRefine 2022-03-29 08:38:25 +11: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 isabelle2021-1: AsmRefine 2022-03-29 08:38:25 +11:00
Makefile licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
ProveGraphRefine.thy asmrefine: remove obsolete simp rules 2022-03-29 08:38:25 +11: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.