Commit Graph

33 Commits

Author SHA1 Message Date
Gerwin Klein c1fe4ad10f
lib+refine: rename Corres_Method to CorresK_Method
This also renames most of the corres* methods to corresK* methods,
including corressimp -> corresKsimp.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-06-30 10:56:47 +10:00
Gerwin Klein e89813ecf2
proofs: updates for monad refactor
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-02-09 11:46:55 +11:00
Gerwin Klein 6bf89bd840 isabelle2021-1 arm-hyp: Refine
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-03-29 08:38:25 +11:00
Rafal Kolanski fb93de1444 isabelle-2021: arm-hyp refine update
Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2021-09-30 16:53:17 +10:00
Mitchell Buckley 7180ee4e70 refine: Standardise names of some corres lemmas
Ideally all corres lemmas of the form
`corres rrel P P' my_abstract_function myHaskellFunction`
should be named `myHaskellFunction_corres`.

This commit renames over 200 lemmas to match this style.

Signed-off-by: Mitchell Buckley <mitchell.alan.buckley@gmail.com>
Co-authored-by: Victor Phan <Victor.Phan@data61.csiro.au>
2021-06-21 10:30:04 +10:00
Corey Lewis dd07ffd197 refine: move invariant field update lemmas
Signed-off-by: Corey Lewis <Corey.Lewis@data61.csiro.au>
2021-03-11 10:42:49 +11:00
Rafal Kolanski 9ed45e17bd arm+arm-hyp: kernelBase and physMappingOffset renames
This brings the naming convention closer to the other architectures,
closer to the Haskell, and closer to the constant renames that happened
in C. It is, however, quite an invasive change.

kernelBase_addr -> pptrBase
kernelBase -> pptrBase
physMappingOffset -> ptrBaseOffset

Signed-off-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2020-11-16 16:52:40 +11:00
Gerwin Klein 36d5bfdb1c arm_hyp refine: Isabelle2020 update
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-10-27 15:52:31 +10:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Victor Phan 966734c69b Collect abstract lemmas in Refine
Create ArchMove_R.thy for transporting arch specific lemmas (and generic
lemmas that are used somewhat specifically by one architecture) to theory
files before Refine.

Create Move_R.thy as an arch generic Refine theory file for transporting
generic lemmas to theory files before Refine.

Also delete some lemmas that have existed earlier already or are not
needed.

Rename Move.thy in CRefine to Move_C.thy for consistency.
2020-02-21 11:49:25 +11:00
Victor Phan 285c47f622 cleanup for crunch_ignore in refine and crefine for all arches
Several constants are are added to the top level crunch_ignore statement in
Bits_R.thy, then removed from individual crunch statements across Refine and
CRefine.
2020-02-03 16:29:18 +11:00
Edward Pierzchalski 2035f444a0 refine: Remove unused lemmas. 2019-05-28 10:00:10 +10:00
Victor Phan 1689dd94fe cleanup
arm ainvs: cleanup

Abbreviate Hoare triples that do not care about the return value and
whose pre and post conditions are the same.

x64 ainvs: cleanup

ainvs: cleanup

x64 ainvs: cleanup

drefine: cleanup
2019-04-18 14:32:08 +10:00
Victor Phan c323da2f5c arm-hyp refine: update for new definition of set_object 2019-04-18 14:32:08 +10:00
Gerwin Klein 6b9d9d24dd Isabelle2018: new "op x" syntax; now is "(x)"
(result of "isabelle update_op -m <dir>")
2018-08-20 09:06:35 +10:00
Gerwin Klein 011e08458e Isabelle2018: new comment syntax
(result of "isabelle update_comments <dirs>")
2018-08-20 09:06:35 +10:00
Joel Beeren 25125763bd arm-hyp: ioportcontrol: fixes after adding IOPortControlCaps to x64 2018-04-19 05:27:06 +10:00
Matthew Brecknell 48b3a8b4ca update object and field widths for x64, and remove some magic numbers
In X64 update the following to match the C kernel:
  - TCB size-bits (11).
  - Endpoint size-bits (4).
  - Guard bits (58).
  - Message registers.

For all architectures, replace magic numbers with defined constants in
specifications, and as far as possible in proofs:
  - tcb_bits in abstract spec.
  - tcbBlockSizeBits, cteSizeBits, ntfnSizeBits, epSizeBits in Haskell
    spec, Haskell and C refinement proofs.
2017-10-26 14:05:35 +11:00
Miki Tanaka 6d8e917087 Remove valid_arch_objs
now that we have valid_vspace_objs to express validiy of
vspace objects, we do not need valid_arch_objs: we have
valid_objs to state the validity of non-vspace arch objects.
2017-08-17 22:44:23 +10:00
Daniel Matichuk d38a19f1bb fix ARM_HYP Refine for newest corres method after ARM_HYP rebase
VER-737
2017-07-18 12:19:48 -06:00
Miki Tanaka 35f714addf arm-hyp refine: reintroduce valid_global_objs and valid_global_vspace_mappings 2017-06-19 14:32:43 +10:00
Matthew Brecknell 35df51dd8f arm-hyp refine: prove word lemmas relating to duplicate page table entries 2017-06-19 14:32:39 +10:00
Gerwin Klein 85053b2580 arm-hyp refine: new vs_valid_duplicates
The Haskell invariant now describes the page mappings necessary for LargePage
and SuperSection. Updates to refine/* to repair the corresponding fallout.

This commit moves some of the largePagePTEOffset et al lemmas from CRefine up
into Refine.

A small number of small but fiddly word lemmas are currently still sorried.
2017-06-19 14:32:38 +10:00
Gerwin Klein 9ebaa2c3ea arm-hyp refine: new invariant: VMNoAccess is unused 2017-06-19 14:32:35 +10:00
Miki Tanaka fc74a6440f arm-hyp refine: repair for rebase (new corres)
- fixes the fallout from the updated corres method.
- also includes some fixes by: Daniel Matichuk <daniel.matichuk@data61.csiro.au>
2017-06-19 14:32:31 +10:00
Gerwin Klein 89496b3d90 arm-hyp: valid_arch_state' 2017-06-19 14:32:28 +10:00
Miki Tanaka 4260a2c545 arm-hyp refine: new definition of valid_arch_state', with more sorries for now
valid_arch_state' now requires armHSCurVCPU to be a pointer to a live' vcpu
2017-06-19 14:32:28 +10:00
Gerwin Klein e9d3c3eb54 arm-hyp: remove unused ParityEnabled in aspec; solve sorries in ADT_H
ParityEnabled isn't used in ARM_HYP and we had to prove its absence as
invariant, which in turn makes the abstraction function from Haskell
to abstract partial (only works when invariants hold).

This commit removes that problem by removing ParityEnabled from the
abstract spec. Updated ainv and refine as necessary.
2017-06-19 14:32:27 +10:00
Gerwin Klein 61136c29fd arm-hyp: wp_pre rebase repair 2017-06-19 14:32:27 +10:00
Alejandro Gomez-Londono fd79501491 arm-hyp refine: ArchAcc_R done
tags: [VER-696]
2017-06-19 14:32:24 +10:00
Miki Tanaka 881ce3e8cb arm-hyp refine: Invariants_H done for now, sorried up to ArchAcc_R 2017-06-19 14:32:24 +10:00
Miki Tanaka 00a68d1470 arm-hyp refine: sorrying in progress (now in CSpase_R) 2017-06-19 14:32:23 +10:00
Miki Tanaka e3cb71ef04 arm-hyp refine: copy ARM files to ARM_HYP directory, updating invariants in progress 2017-06-19 14:32:23 +10:00