Commit Graph

3919 Commits

Author SHA1 Message Date
Edward Pierzchalski f067068a88 asmrefine: improve initial debugging experience.
Adds a 'debug' configuration type to the main ProveSimplToGraphGoals
functions. Configuration lets the user control which functions will be
tested, and logs which functions fail testing.

Adds a 'single step' debug tactic for use in TestGraphRefine, and
demonstrates a few useful initial ML tactic for e.g. narrowing down
which subgoals are failing, and how to inspect a successful subgoal.
2019-11-12 14:25:58 +11:00
Victor Phan 67bba7edc3 lib, x64 crefine: remove word lemma unat_ucast_8_64
unat_ucast_8_64 states that upcasting an 8 word to a 64 word does not
changes its value. We have a generic lemma for this which can be
specialised to this lemma: unat_ucast_up_simp[where 'a=8 and 'b=64,
simplified].
2019-10-30 19:09:39 +11:00
Corey Lewis 41b486365c lib: add a warning if crunch fails and top-level constant is being ignored 2019-10-15 15:07:50 +11:00
Corey Lewis b6689ba321 lib: restrict safe in core crunch tactic so that we can avoid passing around the index 2019-10-14 17:23:42 +11:00
Corey Lewis 8c3e7aa103 lib: make wp_cases_tac subgoal aware 2019-10-14 17:23:41 +11:00
Corey Lewis 96588daf92 lib: improve message printing for crunch and wp, and refactor common printing functions 2019-10-14 17:23:41 +11:00
Corey Lewis 9846cd42bb proof: update for crunch changes 2019-10-14 17:23:41 +11:00
Corey Lewis 9a9c6320be lib: various crunch improvements
The main one is that crunch now uses wpsimp when determining whether a goal
can already be solved, instead of just wp. Crunch can also now use wps
when proving a goal and will now always ignore a constant if told to, even
if it is the top-level constant being crunched.
2019-10-14 17:12:29 +11:00
Corey Lewis dd48e0d899 proof: update for wp changes
Updated 'wp_once' to 'wp (once)' and removed several stray uses of 'wp_trace'.
2019-10-14 17:12:18 +11:00
Corey Lewis 36e7fe3e50 lib: update for wp changes 2019-10-12 16:22:24 +11:00
Corey Lewis f757e0ca5b lib: wp cleanup and parser improvements
The main visible change is from wp_trace', 'wp_once' and 'wp_once_trace' to
'wp (trace)', 'wp (once)' and 'wp (once, trace)'. The option for printing a
warning for unused supplied wp rules has also been removed.
2019-10-12 16:22:24 +11:00
Victor Phan a6024fb377 x64 refine/crefine: remove vmsz_aligned' 2019-10-10 11:27:31 +11:00
Victor Phan 9938dd39da drefine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:28 +11:00
Victor Phan c143029f25 capdl: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:27:28 +11:00
Victor Phan 1522b8bdb4 infoflow: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:24 +11:00
Victor Phan 80e211b26f access: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:24 +11:00
Victor Phan de09728b6c x64 crefine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:20 +11:00
Victor Phan dbc4df6c1d arm-hyp crefine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:17 +11:00
Victor Phan bbfd9e2a82 lib: add helper lemmas 2019-10-10 11:27:17 +11:00
Victor Phan d1637c06ce arm crefine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:14 +11:00
Victor Phan 9100315c86 x64 refine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:10 +11:00
Victor Phan c5b4d0fab5 arm-hyp refine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:10 +11:00
Victor Phan 67d37f8025 arm refine: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:10 +11:00
Victor Phan dede199780 haskell-translator: remove PageRemap case conversion 2019-10-10 11:27:07 +11:00
Victor Phan 5d22c1d329 riscv haskell: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:27:04 +11:00
Victor Phan f284a0cb0e x64 haskell: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:27:01 +11:00
Victor Phan 18a12fc4a0 arm/arm-hyp haskell: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:27:01 +11:00
Victor Phan ccb5174b94 lib: add lemma hoare_vcg_disj_lift_R
Lifts a Hoare triple with disjunctions in the pre and post-conditions
into two separate Hoare triples.
2019-10-10 11:27:01 +11:00
Victor Phan 4e14c1ffcb ainvs: add invs_implies lemma, a collection of invs lemmas 2019-10-10 11:27:01 +11:00
Victor Phan fc06d03f84 riscv ainvs: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:01 +11:00
Victor Phan 89510ac172 x64 ainvs: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:27:01 +11:00
Victor Phan 10127117ee arm-hyp ainvs: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:26:53 +11:00
Victor Phan 558b2e8f37 arm ainvs: update for PageMap replacing PageRemap (SELFOUR-161) 2019-10-10 11:26:44 +11:00
Victor Phan 0ae9614d30 riscv aspec: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:26:41 +11:00
Victor Phan 2f04dc3694 x64 aspec: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:26:33 +11:00
Victor Phan 12a7c2d441 arm-hyp aspec: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:26:33 +11:00
Victor Phan c64e054c3f arm aspec: update PageMap to replace PageRemap (SELFOUR-161) 2019-10-10 11:26:33 +11:00
Victor Phan 90c0bd618f aspec doc: update for PageMap replacing Remap (SELFOUR-161) 2019-10-10 11:26:33 +11:00
MiladKetabi acbc08b836 clean-ups done during proof update for the jira issue SELFOUR-1187: seL4 setPriority should attempt a direct schedule 2019-10-06 18:31:19 +11:00
MiladKetabi d934d25269 proof update for SELFOUR-1187: seL4 setPriority should attempt a direct schedule
Prior to this commit the kernel would always trigger a full reschedule
on setPriority. This change allows the kernel to attempt a direct
switch, avoiding invoking the scheduler.
2019-10-06 18:31:19 +11:00
MiladKetabi 1a49aacc31 lib: three lemmas moved from refine theories 2019-10-06 18:31:19 +11:00
Japheth Lim de9c069473 c-parser: update changelog for license change 2019-10-02 22:19:21 +10:00
Gerwin Klein c43472f1ce c-parser: correct license for shorten_names.ML 2019-10-02 09:16:23 +10:00
Japheth Lim f053fb0181 CamkesAdlSpec: allow ad-hoc additions to integrity policy
Each CAmkES assembly gets an extra field `policy_extra` to specify
extra policy edges. These are added to the default policy graph from
`policy_of`.

This feature is intended to support endpoint merging in the
`global-endpoint` CAmkES template, which could add communication
edges that were not present in the ADL.
2019-09-05 17:03:41 +10:00
Japheth Lim a4019be323 camkes: allow specifying integrity groups
The new field `group_labels` specifies a mapping from ADL component
names to integrity policy labels. This will be used to support the
`group` keyword in CAmkES that allows components to share an address
space. See Jira VER-1109.
2019-09-05 17:03:41 +10:00
Japheth Lim 26f450f2f4 lib: change @{file} antiquote to @{path}
When extracting files for C parser and AutoCorres standalone releases,
we don't want Isabelle to fail a build when files referred to in
`@{file}` antiquotations no longer exist. Using `@{path}` avoids this
problem.
2019-09-05 14:19:14 +10:00
Japheth Lim 4f0b0558c3 autocorres: update tools for Isabelle2019 release 2019-09-05 14:18:18 +10:00
Japheth Lim d00426a669 CamkesCdlRefine: helper lemmas for faster `policy_wellformed` proof 2019-08-27 17:08:35 +10:00
Japheth Lim 8fe0010140 CamkesAdlSpec: support `maybe uses` and `maybe consumes` interfaces
The CAmkES toolchain allows some interfaces to be declared optional.
We add such a flag to the ADL datatype and remove the requirement for
such interfaces to be connected.
2019-08-27 17:08:35 +10:00
Japheth Lim 6b54ecea33 camkes: further generalised connector semantics
This allows connectors to also grant access rights between the
from-ends themselves (and similarly the to-ends).

It was previously thought that production CAmkES systems would not
need these rights. However, some connectors (e.g. VirtQueue) don't
follow the standard ADL semantics and we need these rights to
express their behaviour. Limitations of the Access model also cause
`policy_wellformed` systems to have more rights than necessary; see
Jira VER-1108.
2019-08-27 17:08:35 +10:00