lh-l4v/sys-init
Gerwin Klein e7fb36b7e2 ROOT files: file reorg for new ROOT requirements
Isabelle2020 requires each session to declare it own set of directories that
may not overlap with other session's directories. This commit reorganises
files to comply with that requirement.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-10-27 15:52:31 +10:00
..
examples ROOT files: file reorg for new ROOT requirements 2020-10-27 15:52:31 +10:00
CreateIRQCaps_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
CreateObjects_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
DuplicateCaps_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
InitCSpace_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
InitIRQ_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
InitTCB_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
InitVSpace_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Makefile licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Mapped_Separating_Conjunction.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
ObjectInitialised_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Proof_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
README.md trivial: fix broken links 2020-08-10 15:48:34 +08:00
ROOT ROOT files: file reorg for new ROOT requirements 2020-10-27 15:52:31 +10:00
RootTask_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
StartThreads_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
SysInit_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
WellFormed_SI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
tests.xml licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00

README.md

CapDL User-level system initialiser

This contains a formalised algorithm and the proof of correctness of a user-level system initialiser that uses capDL to specify the state of the resultant system.

It builds on the CapDL API Proofs, and uses a separation logic defined for capDL.

The system initialiser and the proof are described in the ICFEM '13 paper and Andrew Boyton's PhD thesis.

Building

To build from the l4v/ directory, run:

make SysInit

To build the example capDL specifications, from the l4v/ directory, run:

make SysInitExamples

Important Theories

  • The specification for the algorithm of the system initialiser is in SysInit_SI.

  • The top-level statement of the correctness of the system-initialiser is found in Proof_SI.

  • The definition of what it means for an object to be initialised (object_initialised and (irq_initialised) is found in ObjectInitialised_SI.

  • Only "well-formed" capDL specifications can be initialised. The definition of well-formed is located in WellFormed_SI.

  • Two example capDL specifications that are "well-formed" are found in ExampleSpec_SI and ExampleSpecIRQ_SI. The former is a simple capDL spec, and the latter a more complicated specifications with IRQ support.