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