Commit Graph

3712 Commits

Author SHA1 Message Date
Gerwin Klein 06672e9724 riscv ainvs: sorried up to end AInvs 2019-07-31 16:55:31 +10:00
Gerwin Klein 78b1d07bb9 riscv ainvs: sorries for ArchADT, ArchUntyped, ArchArch 2019-07-31 16:55:31 +10:00
Gerwin Klein c0b7d2fc83 riscv aspec: make decode case distinctions complete 2019-07-31 16:55:31 +10:00
Gerwin Klein a37d867e66 riscv aspec: abbreviations for asid_table & pt table base + index
(moved from riscv ainvs)
2019-07-31 16:55:31 +10:00
Gerwin Klein bdd9a3f1ea riscv ainvs: introduce second_level_tables as interface concept 2019-07-31 16:55:31 +10:00
Gerwin Klein f9e6607ea3 ainvs: sync ARM/ARM_HYP/X64 with lemmas that are now arch dependent 2019-07-31 16:55:31 +10:00
Gerwin Klein b147fe7d9d riscv ainvs: sorried ArchDetype_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein 4eba33e349 ainvs: move unique_table_refs into arch 2019-07-31 16:55:31 +10:00
Gerwin Klein 2eb3cd3917 riscv ainvs: sorried ArchTcb, ArchEmptyFail, ArchCNodeInv, ArchBCorres2 2019-07-31 16:55:31 +10:00
Gerwin Klein 749546cf6e riscv ainvs: sorried ArchIpc_AI and ArchInterrupt_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein d23772ce64 riscv ainvs: sorried ArchFinalise_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein cf1c3b898c riscv ainvs: sorry ArchIpcCancel, ArchRetype, and ArchSchedule 2019-07-31 16:55:31 +10:00
Gerwin Klein 5321c8f340 ainvs: move Retype_AI lemma to arch for RISC-V 2019-07-31 16:55:31 +10:00
Gerwin Klein 5315a4f030 riscv ainvs: sorried ArchVSpace_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein 585989948a riscv ainvs: two more lemma statements for store_pte_*_map 2019-07-31 16:55:31 +10:00
Rafal Kolanski d91c83f3a6 riscv aspec+ainvs: rename lookup_pt_* to pt_lookup_* to resemble vs_lookup_*
More consistent naming, easier to remember.
2019-07-31 16:55:31 +10:00
Rafal Kolanski 2dd69a1b7e riscv ainvs: progress on set_pt_valid_global_vspace_mappings
Removed a number of previous dependencies that are now irrelevant.
2019-07-31 16:55:31 +10:00
Rafal Kolanski e60ee77c86 riscv ainvs: introduce lookup_pt_target, reformulate valid_global_tables
- translate_address now uses lookup_pt_target
- valid_global_tables now resolves from riscv_global_pt instead of all
  ASIDs
2019-07-31 16:55:31 +10:00
Gerwin Klein 2f9e070f99 riscv ainvs: more store_pte properties 2019-07-31 16:55:31 +10:00
Gerwin Klein 602dfd2317 riscv ainvs: lifting lemma for vspace_for_asid 2019-07-31 16:55:31 +10:00
Gerwin Klein 0009222876 riscv ainvs: fix lemma name in ArchCSpacePre_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein d9d1e6d472 riscv ainvs: begin sorrying ArchVSpace_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein 4c6b8c4dcd riscv ainvs: sorried ArchInterruptAcc_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein a9d866c870 riscv ainvs: add saturated version of vs_lookup_pages_arch_update for simp 2019-07-31 16:55:31 +10:00
Gerwin Klein 8f119cbfec riscv ainvs: sorried ArchTcbAcc_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein d0a5262b04 riscv ainvs: restore complex form if interface lemma
(The simpler form breaks the generic proofs that expect the more complex statement)
2019-07-31 16:55:31 +10:00
Gerwin Klein eb7adb182a riscv ainvs: sorried ArchCSpacePre_AI and ArchCSpace_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein a2a5163712 ainvs: make another lemma arch specific (unique_table_refs again) 2019-07-31 16:55:31 +10:00
Gerwin Klein bd88d2906b riscv ainvs: sorried ArchCSpaceInv_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein 63a49d469d riscv ainvs: provide arch_cap_simps and enriched cap_simps 2019-07-31 16:55:31 +10:00
Gerwin Klein 4fd8eba182 riscv ainvs: make unique_table_refs lemma arch specific
This lemma worked by (planned) accident for all architectures so far, but
the type of unique_table_refs is different on RISC-V
2019-07-31 16:55:31 +10:00
Gerwin Klein 6c540c37d8 riscv ainvs: add interfaces lemmas to ArchInvariants_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein b1f444be6b riscv ainvs: sorried ArchCSpaceInvPre_AI 2019-07-31 16:55:31 +10:00
Gerwin Klein 2c2e82c94c riscv ainvs: tweak vs_cap_ref_arch to include ASIDPoolCaps
The ASIDPoolCap case is not used in the invariant definitions, but
is convenient later in the proofs.
2019-07-31 16:55:31 +10:00
Gerwin Klein 537992b41e riscv ainvs: add interface definitions; refactor invariants for clarity
All invariants that are pure interface definitions and otherwise
unused in RISC-V are now collected in a separate section to make more clear
what is used and what is not.

Added definitions for cap_asid and empty_table, which turns out is needed in
its complex form, because it is used in generic theorems. The simple form lives
on as empty_pt.
2019-07-31 16:55:31 +10:00
Gerwin Klein a4bbab0985 riscv ainvs: sorried ArchAcc_AI
co-authored-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2019-07-31 16:55:26 +10:00
Gerwin Klein 5d6fd554f2 riscv ainvs: tweak valid_vs_lookup invariant
Mask out bottom bits of asid and vref in the cap; otherwise this
invariant would demand many caps for the same vspace object, one for
each combination of bottom "junk" bits.

co-authored-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2019-07-31 16:26:36 +10:00
Gerwin Klein 0fcc2c8a6f riscv ainvs: factor out has_kernel_mappings for use in preconditions later 2019-07-31 16:26:36 +10:00
Gerwin Klein 3be3a8ea8a riscv ainvs: global pts must point to page tables 2019-07-31 16:26:36 +10:00
Gerwin Klein 12d4439ddb ainvs: make some KHeap lemmas arch specific
These lemmas have different statements in RISC-V
2019-07-31 16:26:36 +10:00
Gerwin Klein c2e95e53c9 riscv ainvs: eta expand def for later unfolding 2019-07-31 16:26:36 +10:00
Rafal Kolanski bea2739ff2 riscv ainvs: a few more lifting lemmas in ArchKHeap_AI 2019-07-31 16:26:36 +10:00
Gerwin Klein 3c64ec187a riscv ainvs: proof progress: invalidating pte mappings
co-authored-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2019-07-31 16:26:36 +10:00
Gerwin Klein b6301ba636 riscv ainvs: initial invariant setup for RISC-V and initial proofs
co-authored-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2019-07-31 16:26:36 +10:00
Gerwin Klein ac9ff925ce riscv platform: removed unused region in address space diagram
co-authored-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2019-07-31 14:13:56 +10:00
Gerwin Klein 78e57e2d90 ainvs: add a type projection
currently only used in RISC-V, but should replace typ_at (or make typ_at an abbreviation for it) over time.
2019-07-31 14:13:56 +10:00
Gerwin Klein f59639342c ainvs: changes to generic invariants to accomodate RISC-V
These changes are mostly removing declarations and lemmas, making them
architecture specific.
2019-07-31 14:13:56 +10:00
Gerwin Klein 367922b8fa riscv aspec: factor out pure page table walking
In particular, separate out a function that returns page table pointers instead
of a function that returns slots in page tables. Phrase the latter in terms of
the former. This makes many properties about walks much more compositional.
2019-07-31 14:13:56 +10:00
Gerwin Klein 629b131dcd riscv aspec: use OptionReader instead of Option monad 2019-07-31 14:13:56 +10:00
Gerwin Klein d54fc7860e riscv aspec: use locale_abbrev 2019-07-31 14:13:56 +10:00