lh-l4v/spec/design
Gerwin Klein 4913aa8af9
aarch64 haskell: tweak createNewCaps definition
Tweak formulation of createNewCaps for page tables to be in the expected
"addr ~elem~ map .." form. The previous definition was not wrong, but
the lemmas in Retype_R expect the set membership form.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-09-27 14:28:30 +10:00
..
m-skel lib+spec+proof+autocorres: consistent Nondet filename prefix 2023-08-09 12:07:06 +10:00
skel aarch64 haskell: tweak createNewCaps definition 2023-09-27 14:28:30 +10:00
Makefile design: more precise Makefile dependencies 2020-04-01 14:31:36 +11:00
README.md READMEs: use run_tests consistently in READMEs (#622) 2023-03-30 13:59:18 +11:00

README.md

The Executable Design Specification of seL4

l4v/spec/design/

This directory contains the Isabelle sources of the executable design specification for seL4.

Most theory files in this directory are tool-generated, do not edit!

The files here are also not particularly well suited for human consumption, it is recommended to directly read the corresponding Haskell code in seL4/haskell instead.

Top-Level Theory

The top-level theory file that draws the whole specification together is API_H, the top-level function in that theory is callKernel.

Similarly to the abstract specification, this top-level function is later in the proofs further wrapped in an automaton that describes system behaviour on this level of abstraction.

Building

The corresponding Isabelle session is ExecSpec. Build in l4v for the ARM architecture with

L4V_ARCH=ARM ./run_tests ExecSpec

Remarks

  • for regenerating the design spec from Haskell sources, go to directory l4v/ and run

     ./run_test haskell-translator
    
  • skeleton files that define which parts of which Haskell files get mapped to which Isabelle theories are found in the sub directories skel and m-skel for design and machine respectively.