Commit Graph

3712 Commits

Author SHA1 Message Date
Edward Pierzchalski 31d5c1c70e cspec: Add feature selection variable.
Adds an 'L4V_FEATURES' variable which can be used to select different
CMake configurations for seL4. This makes it easier to build and test
alternative configurations (like MCS).
2019-08-12 16:22:41 +10:00
Edward Pierzchalski f6599e9ce3 docs: update mlton-compiler instructions.
Move `mlton-compiler` to the end of the apt-get list so it's easier for
a user to leave it off.

Point the user to the mlton website when installing on Debian Buster,
since there's no maintained mlton package for that distribution.
2019-08-09 16:02:26 +10:00
Edward Pierzchalski 03411f7bdb docs: add python3 installation dependencies.
seL4 and L4V are migrating to python 3 given the upcoming end of python
2's support. Until we've rooted out all the old scripts, we recommend
installing both systems.
2019-08-05 17:05:25 +10:00
Rafal Kolanski 5e2f9bd83b ainvs: shorten proof of unique_table_refs_upd_eqD 2019-07-31 16:56:29 +10:00
Rafal Kolanski 95859fd47c license+gitignore: ignore stack.yaml.lock
Contrary to its name, this is not a lock file, contains versions used
to build things, and does not go away. I have been informed this is the
industry standard.
2019-07-31 16:56:29 +10:00
Gerwin Klein bcfefb359b riscv ainvs cleanup: remove unused crunches 2019-07-31 16:56:29 +10:00
Gerwin Klein cf168e2714 riscv ainvs: update cartouches to Isabelle2019 style 2019-07-31 16:56:29 +10:00
Gerwin Klein f29e73bc58 lib: move more facts on Numeral_Type from invariant proofs into lib 2019-07-31 16:56:29 +10:00
Gerwin Klein a1dca67543 riscv aspec/ainvs: resolve FIXMEs, reduce warnings
Mostly moved lemmas and definitions to more suitable locations.
Removed unused lemmas and commented-out code.
Resolved simple Isabelle warnings.
2019-07-31 16:56:26 +10:00
Gerwin Klein f8dc660baf riscv aspec/ainvs: move init_vspace_uses and canonical_user to spec
Needed to define an initial state that satisfies invariants.
2019-07-31 16:55:32 +10:00
Rafal Kolanski 56bbcb3b41 riscv ainvs: remove unused store_pte_equal_kernel_mappings 2019-07-31 16:55:32 +10:00
Gerwin Klein ab4b3b17c6 refine: adjustments for global None_upd_eq[simp] 2019-07-31 16:55:32 +10:00
Gerwin Klein 06010ef565 ainvs: adjustments for global None_upd_eq[simp] 2019-07-31 16:55:32 +10:00
Gerwin Klein d7bce104a7 drefine: adjust for arch-decode interface strengthening 2019-07-31 16:55:32 +10:00
Gerwin Klein 0c9c594026 ainvs: adjustments for stronger ArchFinalise interface assumptions 2019-07-31 16:55:32 +10:00
Gerwin Klein cf2a4d2743 riscv ainvs: cleanup in crunch setup and invariant definitions 2019-07-31 16:55:32 +10:00
Gerwin Klein 3369b33431 riscv ainvs cleanup: remove unused lemma 2019-07-31 16:55:32 +10:00
Gerwin Klein 29f5ac319c riscv ainvs: the sound of the last lemma fitting perfectly 2019-07-31 16:55:32 +10:00
Gerwin Klein 7440b7b7a4 riscv ainvs: close sorry for perform_page_table_invocation 2019-07-31 16:55:32 +10:00
Gerwin Klein 9acd6b2729 riscv ainvs: slightly tighten store_pte precondition for valid_vs_lookup 2019-07-31 16:55:32 +10:00
Gerwin Klein 519b672d08 riscv aspec bugfix: need to check vaddr alignment for PT-map 2019-07-31 16:55:32 +10:00
Gerwin Klein e77f11da9e riscv ainvs: close sorries on PageTableUnmap invocation 2019-07-31 16:55:32 +10:00
Gerwin Klein 0feb5c1a1e riscv aspec: add check for top-level PT in PT unmap decode
See also SELFOUR-2158
2019-07-31 16:55:32 +10:00
Gerwin Klein 3e5c0b7cf5 ainvs: provide real_cte assumption for arch decode functions 2019-07-31 16:55:32 +10:00
Gerwin Klein 55ed773c49 riscv ainvs: fix comment 2019-07-31 16:55:32 +10:00
Gerwin Klein e4f7e4676a riscv ainvs: close perform_pg_inv_unmap, remove unused unmap lemmas 2019-07-31 16:55:32 +10:00
Gerwin Klein 67e4d89ca2 riscv ainvs: close mapM sorry in ArchVSpace 2019-07-31 16:55:32 +10:00
Gerwin Klein 4a73ad6ef1 riscv ainvs: cleanup tweak for store_pte_invs 2019-07-31 16:55:32 +10:00
Gerwin Klein af6e0765c5 riscv aspec+ainvs: spec bugfix for arch_finalise_cap; finish ArchFinalise 2019-07-31 16:55:32 +10:00
Rafal Kolanski 366fb4988f riscv ainvs: remove unused/duplicate store_pte lemmas
New proofs of invariant preservation over store_pte supersede old and
broken ones.
2019-07-31 16:55:32 +10:00
Rafal Kolanski 8b1bb46293 riscv ainvs: preservation of invs over store_pte
Proofs for valid_vspace_objs and valid_vs_lookup are rather repetitive
and could use extraction of a common principle involving vs_lookup_table
over an updated state.
2019-07-31 16:55:32 +10:00
Rafal Kolanski 48e52e4ab9 riscv ainvs: sorry store_pte_valid_vspace_objs
remove its dependency, rename to _FIXME_RISCV for further inspection,
remove from wp set
2019-07-31 16:55:32 +10:00
Rafal Kolanski 34f901ec39 riscv ainvs: prove store_pte_PageTablePTE_valid_vspace_objs
There is room to extract a property of vs_lookup_table on an updated
state, but for now the manipulation is done inline.

We needed an extra restriction that we do not introduce a loop by adding
a PTE to an empty table that would point to itself.
2019-07-31 16:55:32 +10:00
Gerwin Klein 82df777dd7 riscv aspec: fix spec bug in pt_lookup_from_level
This spec bug was inspired by slightly differently but similarly wrong C code
(SELFOUR-2091). Current change brings it into sync with the (correct, we think)
C. Proof update included.
2019-07-31 16:55:32 +10:00
Gerwin Klein 0603b7d57c riscv ainvs: adjust frame invocation conditions; prove decode 2019-07-31 16:55:32 +10:00
Gerwin Klein ea334dc044 riscv ainvs: cleanup, combine unique_vs_lookup_table/no_loop_vs_lookup_table
Prove the same for vs_lookup_slot, moving up lemmas and global_pt abbreviation
from ArchVSpace.
2019-07-31 16:55:32 +10:00
Rafal Kolanski f443145e9c riscv ainvs: more vs_lookup_target/table properties 2019-07-31 16:55:32 +10:00
Gerwin Klein e46c7403fc riscv ainvs: reduce ArchArch to page invocation decode 2019-07-31 16:55:32 +10:00
Gerwin Klein 7a712d9d53 riscv ainvs: close 2 more sorries in ArchFinalise 2019-07-31 16:55:32 +10:00
Gerwin Klein faa124c6a1 riscv ainvs: clean out unused and vcpu-related lemmas 2019-07-31 16:55:32 +10:00
Gerwin Klein c08668c165 riscv ainvs: prove empty_slot invs in ArchFinalise_AI 2019-07-31 16:55:32 +10:00
Gerwin Klein 06f59c5f32 riscv ainvs: remove unused lemmas in ArchFinalise_AI 2019-07-31 16:55:32 +10:00
Gerwin Klein cc02bb366c riscv ainvs: close 4 asid_table sorries in ArchFinalise 2019-07-31 16:55:32 +10:00
Gerwin Klein e268d57128 riscv ainvs: clear sorries in ArchArch up to decode lemmas 2019-07-31 16:55:32 +10:00
Gerwin Klein ae30dff1a4 riscv ainvs: adjust and prove asid_update locale in ArchArch_AI 2019-07-31 16:55:32 +10:00
Gerwin Klein 40587d59fe riscv ainvs: progress in ArchFinalise_AI 2019-07-31 16:55:32 +10:00
Rafal Kolanski 159a11baea riscv ainvs: prove set_asid_pool_invs_restrict
+ update for extra preconditions on asid removal
2019-07-31 16:55:32 +10:00
Rafal Kolanski f78f8c9092 riscv ainvs: minor cleanup/moving lemmas in ArchAcc_AI 2019-07-31 16:55:32 +10:00
Rafal Kolanski d804b7a8d1 Word_Lib: add ucast_shiftl_eq_0 2019-07-31 16:55:32 +10:00
Rafal Kolanski e46f2d7af0 lib: add graph_of_SomeD 2019-07-31 16:55:32 +10:00