lh-l4v/proof/invariant-abstract
Gerwin Klein 6fd6d6bd48 arm/arm-hyp: proof updates for Arm cache fix
This commit updates the proofs for seL4/seL4#485, which fixes
the security and correctness bug seL4/seL4#481. The bug was that
caches are not sufficiently flushed in retype for frames that can
be mapped uncached later.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 16:47:10 +10:00
..
ARM arm/arm-hyp: proof updates for Arm cache fix 2021-08-16 16:47:10 +10:00
ARM_HYP arm/arm-hyp: proof updates for Arm cache fix 2021-08-16 16:47:10 +10:00
RISCV64 lib+ainvs+access+refine: resolve most of the new fixmes 2021-07-22 10:44:43 +10:00
X64 lib+ainvs+access+refine: resolve most of the new fixmes 2021-07-22 10:44:43 +10:00
ADT_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
AInvs.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
AInvsPre.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
Arch_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
BCorres2_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
BCorres_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Bits_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
CNodeInv_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
CSpaceInvPre_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
CSpaceInv_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
CSpacePre_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
CSpace_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
DetSchedAux_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
DetSchedDomainTime_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
DetSchedInvs_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
DetSchedSchedule_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
Deterministic_AI.thy arm ainvs: Isabelle2020 update 2020-10-27 15:52:31 +10:00
Detype_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
EmptyFail_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
Finalise_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
Include_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
InterruptAcc_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
Interrupt_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
InvariantsPre_AI.thy various: resolve some existing fixmes 2021-07-22 10:44:43 +10:00
Invariants_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
IpcCancel_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
Ipc_AI.thy lib+ainvs+access+refine: resolve most of the new fixmes 2021-07-22 10:44:43 +10:00
KHeapPre_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
KHeap_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
KernelInitSepProofs_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
KernelInitSep_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
KernelInit_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
LevityCatch_AI.thy aspec+access: ADT_AC arch split 2021-06-21 20:10:32 +10:00
README.md trivial: fix links to papers 2021-03-02 11:44:22 +11:00
Retype_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Rights_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Schedule_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
SubMonad_AI.thy licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Syscall_AI.thy aspec+access: Syscall_AC arch split 2021-06-21 20:10:32 +10:00
TcbAcc_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
Tcb_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
Untyped_AI.thy lib+ainvs+access+refine: resolve most of the new fixmes 2021-07-22 10:44:43 +10:00
VSpaceEntries_AI.thy all: remove theory import path references 2020-11-02 10:16:17 +10:00
VSpacePre_AI.thy Cleanup some FIXMEs in AInvs and related sessions 2021-07-16 14:13:07 +10:00
VSpace_AI.thy aspec+access: Syscall_AC arch split 2021-06-21 20:10:32 +10:00

README.md

Abstract Spec Invariant Proof

This proof defines and proves the global invariants of seL4's abstract specification. The invariants are phrased and proved using a monadic Hoare logic described in a TPHOLS '08 paper.

Building

To build from the l4v/ directory, run:

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

Important Theories

The top-level theory where the invariants are proved over the kernel is Syscall_AI; the bottom-level theory where they are defined is Invariants_AI.