lh-l4v/proof/drefine
Corey Lewis 73a52be413 proof: change more simple corres split cases
perl -0777 -pi -e "s/corres_split_nor([\w'-]*) *\[ *OF +_ +([^_][\w'-]+) +([\w'-]+)/corres_split_nor\1\[OF \2 _ \3/g" **/*.thy
perl -0777 -pi -e 's/corres_split_nor([\w]?) *\[ *OF +_ +(?!_)/corres_split_nor\1\[OF /g' **/*.thy
perl -0777 -pi -e 's/corres_split_eqr([\w]?) *\[ *OF +_ +(?!_)/corres_split_eqr\1\[OF /g' **/*.thy
perl -0777 -pi -e 's/corres_split_mapr([\w]?) *\[ *OF +_ +(?!_)/corres_split_mapr\1\[OF /g' **/*.thy
perl -0777 -pi -e 's/corres_split_noop_rhs([\w]?) *\[ *OF +_ +(?!_)/corres_split_noop_rhs\1\[OF /g' **/*.thy
perl -0777 -pi -e 's/corres_split_dc([\w]?) *\[ *OF +_ +(?!_)/corres_split_dc\1\[OF /g' **/*.thy
perl -0777 -pi -e 's/corres_split_handle([\w]?) *\[ *OF +_ +(?!_)/corres_split_handle\1\[OF /g' **/*.thy
perl -0777 -pi -e 's/corres_split_catch([\w]?) *\[ *OF +_ +(?!_)/corres_split_catch\1\[OF /g' **/*.thy
perl -0777 -pi -e "s/corres_split_eqr(\w?) *\[ *OF +([^\W_][\w'-]+) +([^\W_][\w'-]*)/corres_split_eqr\1\[OF \3 \2/g" **/*.thy
perl -0777 -pi -e 's/corres_split_nor(\w?) *(.*)\)\n\s*prefer +2/corres_split_nor\1\2\)/g' **/*.thy

Signed-off-by: Corey Lewis <corey.lewis@proofcraft.systems>
2022-10-20 08:59:52 +11:00
..
base ROOT files: file reorg for new ROOT requirements 2020-10-27 15:52:31 +10:00
Arch_DR.thy proof: change simple corres_splitEE cases 2022-10-20 08:59:52 +11:00
CNode_DR.thy proof: change more simple corres split cases 2022-10-20 08:59:52 +11:00
Corres_D.thy proof: rename corres_split' to corres_underlying_split 2022-10-20 08:59:52 +11:00
Finalise_DR.thy proof: change more simple corres split cases 2022-10-20 08:59:52 +11:00
Intent_DR.thy proof: rename corres_underlying_split to corres_split_forwards 2022-10-20 08:59:52 +11:00
Interrupt_DR.thy proof: change simple corres_split_deprecated cases 2022-10-20 08:59:52 +11:00
Ipc_DR.thy proof: change simple corres_splitEE cases 2022-10-20 08:59:52 +11:00
KHeap_DR.thy proof: change simple corres_splitEE cases 2022-10-20 08:59:52 +11:00
Lemmas_D.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
MoreCorres.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
MoreHOL.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
README.md READMEs: fix publication links 2021-08-25 11:22:05 +10:00
Refine_D.thy proof: change more simple corres split cases 2022-10-20 08:59:52 +11:00
Schedule_DR.thy proof: change simple corres_split_deprecated cases 2022-10-20 08:59:52 +11:00
StateTranslationProofs_DR.thy drefine: Isabelle2020 update 2020-10-27 15:52:31 +10:00
StateTranslation_D.thy isabelle-2021: update DRefine 2021-09-30 16:53:17 +10:00
Syscall_DR.thy proof: change simple corres_splitEE cases 2022-10-20 08:59:52 +11:00
Tcb_DR.thy proof: change simple corres_splitEE cases 2022-10-20 08:59:52 +11:00
Untyped_DR.thy proof: change more simple corres split cases 2022-10-20 08:59:52 +11:00

README.md

CapDL Refinement Proof

This proof establishes that seL4's abstract specification is a formal refinement (i.e. a correct implementation) of its capDL specification. It is described as part of an ICFEM '13 paper.

Building

To build from the l4v/ directory, run:

./isabelle/bin/isabelle build -d . -v -b DRefine

Important Theories

The top-level theory where the refinement statement is established over the entire kernel is Refine_D; the state-relation that relates the state-spaces of the two specifications is defined in StateTranslation_D and the basic correspondence property proved over each kernel function is defined in Corres_D.