lh-l4v/proof/sep-capDL
Gerwin Klein f7768ee90e
sep-capDL: update to Isabelle2023 mapsto syntax
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-10-06 14:41:53 +11:00
..
AbstractSeparationHelpers_SD.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
AbstractSeparation_SD.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Frame_SD.thy sep-capDL: update to Isabelle2023 mapsto syntax 2023-10-06 14:41:53 +11:00
Helpers_SD.thy proof+autocorres: update for select_wp and alternative_wp 2023-08-09 16:42:01 +10:00
Lookups_D.thy lib+spec+proof+autocorres: update for renamed Reader_Option_Monad 2023-08-09 12:07:06 +10:00
README.md READMEs: use run_tests consistently in READMEs (#622) 2023-03-30 13:59:18 +11:00
Sep_Tactic_Helper.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Separation_SD.thy isabelle2021-1: SepDSpec 2022-03-29 08:38:25 +11:00
Types_SD.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00

README.md

CapDL Separation Logic Proof

This proof defines a separation logic for the capDL kernel specification. It builds on a generic separation algebra, described in the ITP 2012 paper.

The separation logic is defined on a lifted heap where we lift the object heap and IRQ table into an object-component heap and an IRQ table heap. This gives us a separation algebra with a capability-level of granularity.

This separation logic is used by the CapDL API Proofs and the system initialiser specification.

This separation logic is described in the ICFEM '13 paper and Andrew Boyton's PhD thesis.

Building

To build for the ARM architecture from the l4v/ directory, run:

    L4V_ARCH=ARM ./run_tests SepDSpec

Important Theories

  • The definitions of heap disjunction, heap addition and showing that they produce a separation algebra is found in AbstractSeparation_SD.

  • The "arrows" are defined in Separation_SD.

  • The "frame rule" for specific leaf functions is defined in Frame_SD. This "frame rule" is different from the traditional frame rule as we use a shallow embedding.