seL4-L4.verified/tools/asmrefine
Gerwin Klein 9069ba7638 asmrefine: update to Isabelle2025
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-06-13 13:20:24 +10:00
..
AARCH64 aarch64 asmrefine: copy ArchSetup from RISCV64 2023-10-13 09:12:07 +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 all: adjust theory imports for TypHeapLib change 2023-01-25 10:13:45 +11:00
FieldAccessors.thy asmrefine: update to Isabelle2025 2025-06-13 13:20:24 +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 all: adjust theory imports for TypHeapLib change 2023-01-25 10:13:45 +11:00
GraphLangLemmas.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
GraphProof.thy lib+spec+proofs: proof fixes for NonDetMonadLemmaBucket split 2023-01-19 17:01:34 +11:00
GraphRefine.thy clib+crefine+asmrefine: Simpl update 2024-03-15 09:31:13 +01:00
Makefile Makefiles: remove unused report-regression target 2022-06-03 09:36:43 +10:00
ProveGraphRefine.thy asmrefine: update to Isabelle2025 2025-06-13 13:20:24 +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 clib+crefine+asmrefine: Simpl update 2024-03-15 09:31:13 +01: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.