machine+aspec: add Arch_Kernel_Config_Lemmas

While having a single Kernel_Config_Lemmas was fine for constraining the
number of domains, it does not work for constraining architecture-specific
configuration options/values.

Add an (empty for now) Arch_Kernel_Config_Lemmas theory to every architecture
that imports the generic Kernel_Config_Lemmas. Change all imports of
Kernel_Config_Lemmas to import Arch_Kernel_Config_Lemmas instead.

Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
This commit is contained in:
Rafal Kolanski 2023-03-28 14:40:57 +11:00 committed by Gerwin Klein
parent 27d838af86
commit 9288b78694
No known key found for this signature in database
GPG Key ID: 20A847CE6AB7F5F3
16 changed files with 102 additions and 10 deletions

View File

@ -12,7 +12,7 @@ imports
"ExecSpec.Arch_Structs_B"
ExceptionTypes_A
VMRights_A
ExecSpec.Kernel_Config_Lemmas
ExecSpec.Arch_Kernel_Config_Lemmas
begin
context begin interpretation Arch .

View File

@ -15,7 +15,7 @@ imports
"ExecSpec.Arch_Structs_B"
ExceptionTypes_A
VMRights_A
ExecSpec.Kernel_Config_Lemmas
ExecSpec.Arch_Kernel_Config_Lemmas
begin
context Arch begin global_naming ARM_A

View File

@ -15,7 +15,7 @@ imports
"ExecSpec.Arch_Structs_B"
ExceptionTypes_A
VMRights_A
ExecSpec.Kernel_Config_Lemmas
ExecSpec.Arch_Kernel_Config_Lemmas
begin
context Arch begin global_naming ARM_A

View File

@ -11,7 +11,7 @@ imports
"ExecSpec.Arch_Structs_B"
ExceptionTypes_A
VMRights_A
ExecSpec.Kernel_Config_Lemmas
ExecSpec.Arch_Kernel_Config_Lemmas
begin
context Arch begin global_naming RISCV64_A

View File

@ -11,7 +11,7 @@ imports
"ExecSpec.Arch_Structs_B"
ExceptionTypes_A
VMRights_A
ExecSpec.Kernel_Config_Lemmas
ExecSpec.Arch_Kernel_Config_Lemmas
begin
context Arch begin global_naming X64_A

View File

@ -0,0 +1,18 @@
(*
* Copyright 2023, Proofcraft Pty Ltd
*
* SPDX-License-Identifier: GPL-2.0-only
*)
(* Architecture-specific lemmas constraining Kernel_Config definitions *)
theory Arch_Kernel_Config_Lemmas
imports
Kernel_Config_Lemmas
Platform
begin
context Arch begin global_naming AARCH64
end
end

View File

@ -12,7 +12,7 @@ imports
"Word_Lib.WordSetup"
"Lib.Defs"
Setup_Locale
Kernel_Config_Lemmas
Kernel_Config
begin
context Arch begin global_naming AARCH64

View File

@ -0,0 +1,18 @@
(*
* Copyright 2023, Proofcraft Pty Ltd
*
* SPDX-License-Identifier: GPL-2.0-only
*)
(* Architecture-specific lemmas constraining Kernel_Config definitions *)
theory Arch_Kernel_Config_Lemmas
imports
Kernel_Config_Lemmas
Platform
begin
context Arch begin global_naming ARM
end
end

View File

@ -12,7 +12,7 @@ imports
"Lib.Lib"
"Word_Lib.WordSetup"
Setup_Locale
Kernel_Config_Lemmas
Kernel_Config
begin
context Arch begin global_naming ARM

View File

@ -0,0 +1,18 @@
(*
* Copyright 2023, Proofcraft Pty Ltd
*
* SPDX-License-Identifier: GPL-2.0-only
*)
(* Architecture-specific lemmas constraining Kernel_Config definitions *)
theory Arch_Kernel_Config_Lemmas
imports
Kernel_Config_Lemmas
Platform
begin
context Arch begin global_naming ARM_HYP
end
end

View File

@ -12,7 +12,7 @@ imports
"Lib.Lib"
"Word_Lib.WordSetup"
Setup_Locale
Kernel_Config_Lemmas
Kernel_Config
begin
context Arch begin global_naming ARM_HYP

View File

@ -4,6 +4,8 @@
* SPDX-License-Identifier: GPL-2.0-only
*)
(* Architecture-independent lemmas constraining Kernel_Config definitions *)
theory Kernel_Config_Lemmas
imports "$L4V_ARCH/Kernel_Config"
begin

View File

@ -0,0 +1,18 @@
(*
* Copyright 2023, Proofcraft Pty Ltd
*
* SPDX-License-Identifier: GPL-2.0-only
*)
(* Architecture-specific lemmas constraining Kernel_Config definitions *)
theory Arch_Kernel_Config_Lemmas
imports
Kernel_Config_Lemmas
Platform
begin
context Arch begin global_naming RISCV64
end
end

View File

@ -12,7 +12,7 @@ imports
"Word_Lib.WordSetup"
"Lib.Defs"
Setup_Locale
Kernel_Config_Lemmas
Kernel_Config
begin
context Arch begin global_naming RISCV64

View File

@ -0,0 +1,18 @@
(*
* Copyright 2023, Proofcraft Pty Ltd
*
* SPDX-License-Identifier: GPL-2.0-only
*)
(* Architecture-specific lemmas constraining Kernel_Config definitions *)
theory Arch_Kernel_Config_Lemmas
imports
Kernel_Config_Lemmas
Platform
begin
context Arch begin global_naming X64
end
end

View File

@ -12,7 +12,7 @@ imports
"Word_Lib.WordSetup"
"Lib.Defs"
Setup_Locale
Kernel_Config_Lemmas
Kernel_Config
begin
context Arch begin global_naming X64