Commit Graph

3382 Commits

Author SHA1 Message Date
Michael McInerney 4a07af9d9d ainvs refine: update arch-split locale names
Previously, some arch-specific names were qualified with the wrong
architecture abbreviation.
2019-06-13 11:43:50 +10:00
Michael McInerney 9478d5507c refine cleanup: remove unused lemmas 2019-06-13 11:43:50 +10:00
Michael McInerney aec289ceb6 ainvs cleanup: remove unused as_user_valid_vspace_objs lemmas 2019-06-13 11:43:50 +10:00
Michael McInerney 6d581b5897 refine: add some lemmas about obj_at' 2019-06-13 11:43:50 +10:00
Michael McInerney 75f1a25948 ainvs: add as_user_bind lemma 2019-06-13 11:43:50 +10:00
Michael McInerney 81dab3dcec lib: add unit_dc_is_eq 2019-06-13 11:43:50 +10:00
Japheth Lim 5fef6f3443 run_tests: use standard license header 2019-06-13 11:33:43 +10:00
Japheth Lim 445b003cab run_tests: show --l4v-arches in --help output 2019-06-13 11:33:43 +10:00
Japheth Lim e4ad4e08a6 run_tests: support testing multiple L4V_ARCHs in one invocation
This adds the options `--l4v-arches` and `--l4v-arch-all` to the
`run_tests` wrapper script, which can be used to specify multiple
(or all) L4V_ARCHs to test.
2019-06-13 11:33:43 +10:00
Edward Pierzchalski e8e40a572c lib: Use `datatype_schem` arguments in `wpfix`.
`wpfix` delegates to `datatype_schem`, so we include the option to add
new accessor lemmas.
2019-06-12 10:35:48 +10:00
Edward Pierzchalski 02dcb099ff lib: Allow additional rules for `datatype_schem`.
Previously, the method `datatype_schem` used a specific list of
hard-coded rules to "fix" datatypes in schematics. This adds an
attribute so users can add new datatype "lenses"/"accessors" as needed.
2019-06-12 10:35:37 +10:00
Edward Pierzchalski 7ac89448a1 lib: Add `find_index`. 2019-06-12 10:35:32 +10:00
Matthew Brecknell 9f94d3ccb3 crefine: update for renamed NextIP and FaultIP registers
The ARM C kernels have renamed the LR_svc and FaultInstruction registers
to NextIP and FaultIP respectively, for consistency with x86 kernels. A
patch for a similar renaming in the abstract and Haskell specifications
is forthcoming.
2019-05-29 16:52:59 +10:00
Matthew Brecknell b8557d3862 crefine cleanup: remove redundant Kernel_C_reg_simps 2019-05-29 16:52:59 +10:00
Japheth Lim 211fbe6d28 asmrefine: print running time for each function's graph proof
These summary statistics should be useful while not being too verbose.
2019-05-29 14:23:29 +10:00
Japheth Lim f21e440c15 asmrefine: add some rules to help array-of-struct subgoals
This handles the new implementation of `init_freemem` in seL4, and thus
the workaround of seL4 d0d97779cb is no longer required.
2019-05-29 14:23:29 +10:00
Edward Pierzchalski c1e9a09e26 lib: move "tl_nat_list_simp" up. 2019-05-28 10:00:10 +10:00
Edward Pierzchalski 14c4722cef refine: remove stray 'thm' commands. 2019-05-28 10:00:10 +10:00
Edward Pierzchalski 59b07ad60d refine: mark "call_kernel_serial" as a theorem. 2019-05-28 10:00:10 +10:00
Edward Pierzchalski 2035f444a0 refine: Remove unused lemmas. 2019-05-28 10:00:10 +10:00
Japheth Lim c397b16f42 lib: license header for RangeMap 2019-05-20 00:15:31 +10:00
Japheth Lim 071ebbd398 lib: move @{mk_term} antiquotation from AutoCorres; add examples 2019-05-17 18:07:59 +10:00
Japheth Lim c96444b7d4 lib/RangeMap: cleanup; strengthen range lookup thms; add testsuite 2019-05-17 18:07:59 +10:00
Japheth Lim 4f1c452bd2 lib: add RangeMap data structure (no tests yet) 2019-05-17 13:58:50 +10:00
Japheth Lim 9cbf5e6ab5 lib: use `@{term_pat}` in FP_Eval; refactor term_pat testsuite 2019-05-17 13:58:13 +10:00
Japheth Lim 4c18e1f156 lib/FP_Eval: add license headers 2019-05-17 13:58:13 +10:00
Japheth Lim c94d3285df lib/FP_Eval: move let_weak_cong' to main tool; improve docs 2019-05-17 13:58:13 +10:00
Japheth Lim 450f83ffeb lib: initial version of FP_Eval tool
FP_Eval is an Isabelle/ML tool for functional program rewriting.
It has similarities with the Isabelle simplifier, but is simpler and
more scalable for performing computations in the logic.

See FP_Eval_Tests for basic tests and examples.
2019-05-17 13:58:13 +10:00
Matthew Brecknell e9ac64ba2d binary: improve support for array access via pointer addition 2019-05-15 14:49:20 +10:00
Matthew Brecknell 175c612f3f crefine: use mangled names in memzero and memset
This is required by a C kernel patch (to refactor some boot code) which
caused the Isabelle C parser to mangle the names of some local
variables.
2019-05-15 14:49:20 +10:00
Edward Pierzchalski 4e56da06dd docs: Add section on JEdit
- Add instructions for installing the `goto-error` macro in a place
  where we might be able to find them.
- Mention the improved auto-indenter, in the hope that we will use it
  when writing proofs.
2019-05-10 10:43:15 +10:00
Edward Pierzchalski 9809f4001f lib tutorial: Add `SELECT_GOAL` example. 2019-05-08 10:42:33 +10:00
Matthew Brecknell 503f7ce7de crefine: update proofs for statically allocated IRQ node
Previously, the C kernel maintained a global pointer to the IRQ node.
This pointer was only initialised during boot, when the actual IRQ node
was dynamically allocated from untyped memory.

The C kernel now includes a statically allocated IRQ node, which is just
a suitably sized array of CTEs. This commit updates the proofs to verify
this change to the C kernel.
2019-05-03 13:52:52 +10:00
Matthew Brecknell 206ee07c58 crefine: add abbreviations for global page table addresses 2019-05-03 13:52:52 +10:00
Matthew Brecknell 976eca1a28 binary: improve support for array access via pointer addition 2019-05-03 13:52:52 +10:00
Matthew Brecknell f47f1c6446 cleanup: move pt_Ptr etc up to Wellformed_C 2019-05-03 13:52:52 +10:00
Matthew Brecknell 009c0c98b5 cleanup: remove some redundant uses of if_1_0_0 2019-05-03 13:52:52 +10:00
Matthew Brecknell 17b0aca539 cleanup: remove duplicate cap_get_tag_isCap_ArchObject2 lemmas 2019-05-03 13:52:52 +10:00
Matthew Brecknell f1901beee0 cleanup: remove duplicates of invs'_invs_no_cicd 2019-05-03 13:52:52 +10:00
Matthew Brecknell eedf3d8fa2 cleanup: remove duplicates of objBitsKO_gt_0 2019-05-03 13:52:52 +10:00
Edward Pierzchalski ea06b8b708 lib: Add tutorial on tactic basics.
This is an explicit walkthrough about how one goes about doing a proof
in Isabelle/ML. The goal is that someone can run into such a proof, look
at this tutorial, and then at least be equipped to ask the right
questions about fixing the proof.
2019-05-03 11:38:56 +10:00
Edward Pierzchalski ea31a344c7 libtest: Fixes after new Ptr syntax changes. 2019-05-03 11:14:12 +10:00
Edward Pierzchalski 85ec1a61cb c-parser: add type syntax for Ptr and ptr_coerce
A common frustration is seeing a term `Ptr x :: foo ptr` and not being
able to inspect the inferred type `foo` (this is especially true when
`Ptr` occurs within another expression).

Copying the style of `UCAST`, this adds syntax rules for displaying `Ptr
x :: foo ptr` as `PTR(foo) x` and `ptr_coerce (bar :: a ptr) :: b ptr`
as `PTR_COERCE(a -> b) bar`.
2019-05-02 10:34:25 +10:00
Edward Pierzchalski e4f0651f6b docs: Update installation instructions.
Figuring out that you need to install an extra package _after_ waiting
three hours for CRefine to build isn't fun. Changes the installation
instructions to be like most other projects, i.e. "here is everything
you'll need for anything you'll want to do".
2019-04-29 16:44:39 +10:00
Edward Pierzchalski 3dbe9fb100 misc: Use TS settings file.
For internal use, we want to configure Isabelle to use our custom
multiple-heap settings.
2019-04-24 14:45:58 +10:00
Victor Phan 834dd88681 refine: remove as_user_valid_etcbs from architecture specific files
as_user_valid_etcbs can be reasoned in an architecture generic setting.
2019-04-18 14:32:08 +10:00
Victor Phan 1689dd94fe cleanup
arm ainvs: cleanup

Abbreviate Hoare triples that do not care about the return value and
whose pre and post conditions are the same.

x64 ainvs: cleanup

ainvs: cleanup

x64 ainvs: cleanup

drefine: cleanup
2019-04-18 14:32:08 +10:00
Victor Phan 8c5cf5b13f bisim: update for new definition of set_object 2019-04-18 14:32:08 +10:00
Victor Phan bed48eba13 access-control: update for new definition of set_object 2019-04-18 14:32:08 +10:00
Victor Phan 93888ccb07 infoflow: remove oopsied lemma 2019-04-18 14:32:08 +10:00