Edward Pierzchalski
ba5983d22e
lib: extend schematic instantiation tracer
...
Adds a combinator, `trace_schematic_insts_tac`, which wraps a rule-using
tactic and reports any schematic instantiations.
2019-08-27 16:12:06 +10:00
Edward Pierzchalski
8ffebe8f94
lib: add utilities for using options.
2019-08-27 16:12:06 +10:00
Edward Pierzchalski
b0cf5638fd
lib: trivial: use cartouches for ML comments.
...
Useful for antiquotations.
2019-08-27 16:12:06 +10:00
Japheth Lim
50b0f66a58
X64 CRefine: minor fixes for MCS kernel merge
...
The previous commit only updated ARM and ARM_HYP; this updates X64.
2019-08-23 15:43:25 +10:00
Japheth Lim
da2081631b
CRefine: minor fixes for MCS kernel merge
...
We need to make small adjustments because the kernel will see minor
changes to variable initialisation, even in the non-MCS build.
2019-08-22 11:22:29 +10:00
Japheth Lim
e5e4f23ca2
CamkesAdlSpec: tag Wellformed_CAMKES conditions
...
Checking an ill-formed spec can now yield a list of annotated
failures, rather than leaving a mess (or worse, just `1. False`).
2019-08-21 14:23:28 +10:00
Japheth Lim
2c3b4c24fc
CamkesCdlRefine, Lib: add debug tag for integrity policy
...
This tags each generated policy goal with the object and cap that
led to that goal.
We create a new constant `generic_tag` in Lib for this purpose.
2019-08-21 14:23:22 +10:00
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