Commit Graph

24 Commits

Author SHA1 Message Date
Michael McInerney ac5fe5bd59 refine: add obj_range'_disjoint
This also moves several lemmas required for obj_range'_disjoint
to Invariants_H

Signed-off-by: Michael McInerney <michael.mcinerney@proofcraft.systems>
2023-05-01 10:52:50 +09:30
Rafal Kolanski b8fc709d21 refine+orphanage: update proofs to never unfold numDomains
Proofs now don't care about numDomains, except for a small interface in
Invariants_H. The interface is currently by convention only, and has no
enforcement capabilities.

Signed-off-by: Rafal Kolanski <rafal.kolanski@proofcraft.systems>
2021-12-22 23:50:22 +11:00
Gerwin Klein 492c236121 isabelle-2021 riscv: update Refine
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-09-30 16:53:17 +10:00
Miki Tanaka 7648bf01e1 arm/arm_hyp/x64/riscv refine: add a method for setter valid_idle' rules
- in VSpace_R
- the same method added to each arch; would be good to unify via
  arch split in the future
- also includes some style cleanup

Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Miki Tanaka de7c2f7605 riscv refine: define valid_idle' directly, without using itcb
- this introduces idle_tcb' which is defined directly using tcb fields
- backport from MCS ARM Refine

Signed-off-by: Miki Tanaka <miki.tanaka@data61.csiro.au>
2021-07-24 12:09:57 +10:00
Gerwin Klein 300d62e6b3 riscv refine: update to Isabelle2020
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-10-27 15:52:31 +10:00
Gerwin Klein cd82381ae2 riscv refine: add irq ~= irqInvalid to valid_cap'
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-06-08 20:41:09 +08:00
Rafal Kolanski e93a475bd6 riscv refine: update for tcbBlockSizeBits == 10
Signed-off-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2020-06-08 20:41:09 +08:00
Gerwin Klein 2574ea6bc0 refine: remove duplicate update rule
makes use of the actual warning in add_upd_simps that was hidden in the
noise before.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-05-04 17:03:09 +08:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Gerwin Klein c390ba7404 proofs: adjustments for word_lib changes 2019-11-15 12:08:22 +11:00
Gerwin Klein a5e27933a5 riscv: cleanup; resolve remaining FIXMEs 2019-11-12 18:28:40 +11:00
Gerwin Klein cbc31e31e1 ainvs+refine: provide def of mask_range in InvariantsPre
(used to be ptr_range in riscv, which is too overloaded)
2019-11-12 18:28:40 +11:00
Gerwin Klein 4bd67d3c4e riscv refine: clean up theory imports + fix fallout 2019-11-12 18:28:39 +11:00
Gerwin Klein 66d43a5e91 riscv refine: cleanup in Retype_R 2019-11-12 18:28:39 +11:00
Gerwin Klein eb8370e18e riscv refine: cleanup pass through Invariants_H 2019-11-12 18:28:39 +11:00
Gerwin Klein a612a0e54e riscv refine: reduce ArchAcc_R sorries to 1 2019-11-12 18:28:39 +11:00
Gerwin Klein 45172e930f riscv refine: basic setup for recursive PTLookup* 2019-11-12 18:28:39 +11:00
Gerwin Klein 159bf6a50f riscv refine: add valid_arch_cap' to invariants
It turns out that Untyped_R needs the properties of valid_arch_cap' non-locally
for all descendants of the untyped cap it's looking at. This would be a fairly
involved property to assert, and so far only Retype/Detype had any real proof
obligations on valid_cap', i.e. it should be cheap to keep.
2019-11-12 18:28:39 +11:00
Gerwin Klein 3d037d7219 riscv refine: Invariants_H: syntax precedence for parentOf 2019-11-12 18:28:39 +11:00
Gerwin Klein 7815e4734a riscv refine: introduce bit_simps' 2019-11-12 18:28:39 +11:00
Gerwin Klein 8b40b334bd riscv refine: rephrase page_table_at' in Invariants_H 2019-11-12 18:28:38 +11:00
Gerwin Klein 244e8fe32f riscv refine: initial design invariants
upd
2019-11-12 18:28:38 +11:00
Gerwin Klein 8be2ab8484 riscv refine: initial skeleton 2019-11-12 18:28:38 +11:00