Commit Graph

3287 Commits

Author SHA1 Message Date
Gerwin Klein 9489640367 lib: avoid use of Local_Theory.reset
Local_Theory.reset is about to be discontinued in the next Isabelle release
2019-01-31 15:20:44 +11:00
Matthew Brecknell 8272f79c0f arm-hyp crefine: remove named interrupt identifiers
Recent changes to the C kernel mean that various structures and
constants are generated from DTS files. In particular, verification now
sees interrupt identifiers as integer literals instead of defined
constants.
2019-01-30 17:13:03 +11:00
Gerwin Klein 04f1254cb8 arm/arm-hyp abstract: remove outdated comment about globals_frame 2019-01-14 13:37:52 +11:00
Japheth Lim 252991e9a7 CamkesCdlRefine: update policy_of to work with GrantReply 2019-01-11 14:39:11 +11:00
Japheth Lim 9792798c1b CamkesAdlSpec: avoid hardcoding C types; better wellformed_* automation
Instead of hardcoding basic C types, this passes most of them along as
uninterpreted strings. This allows typedefs such as time_t or ssize_t
to be used, without requiring the formal model to recognise them.
2019-01-11 14:39:11 +11:00
Japheth Lim 10b5bab0f4 aspec: avoid manual proof for rec_del definition 2018-12-18 14:50:54 +11:00
Japheth Lim 5516fea8a0 capDL-api, sys-init: fix for GrantReply (SELFOUR-6)
The badge condition for the CNode_Mint lemmas was incorrect and ought
to be untangled. This commit patches up the specs, but with ad-hoc
proof fixes.
2018-12-11 14:54:42 +11:00
Japheth Lim bd6b934613 infoflow: clearer comment for the subjectAffects case for Reply 2018-12-10 20:01:38 +11:00
Japheth Lim c0fac42147 InfoflowC: fix for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Japheth Lim 186d610db7 DPolicy: fix for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Japheth Lim 3758df05df dspec, drefine: fix for GrantReply (SELFOUR-6)
Nothing too exciting here, just duplicating the new GrantReply logic
from ASpec and repairing the proofs.
2018-12-10 20:01:38 +11:00
Japheth Lim 4d4de9098b infoflow: delete commented-out sections 2018-12-10 20:01:38 +11:00
Japheth Lim 2735ad42a1 access: proof cleanup for tro_alt_trans_spec
The proof structure still largely follows Thibaut's scheme; this commit
merely adds some speedup, style cleanup, and documentation.

Unfortunately, the proof state seems to be just large enough that the
built-in record update ruleset runs into limitations, and the standard
clasimp tactics start to fail on subgoals in an unpredictable way.
2018-12-10 20:01:38 +11:00
Japheth Lim ab2e097e60 infoflow: proof style cleanup (for GrantReply patch)
As the title says, this commit introduces general formatting and style
cleanup, but only for the parts touched by the recent GrantReply patch.
2018-12-10 20:01:38 +11:00
Japheth Lim 9eaf630e48 infoflow: more minor FinalCaps cleanup 2018-12-10 20:01:38 +11:00
Japheth Lim f49aefd4a4 infoflow: style cleanup (for GrantReply patch): FinalCaps and Noninterference 2018-12-10 20:01:38 +11:00
Japheth Lim 6e2fbbe7f1 access: improve comments for policy_wellformed and integrity_obj 2018-12-10 20:01:38 +11:00
Japheth Lim 99bd4b0723 access, infoflow: replace "pi_cases" proofs with structured cases 2018-12-10 20:01:38 +11:00
Japheth Lim 6b48805ef1 access: use monad_commute to prove empty_slot commute lemma
This is ostensibly more principled than the earlier proof, which simply
unfolded all the monad combinators. However, there was also no existing
framework for using monad_commute, so we need to make one up just to
do this single proof.
2018-12-10 20:01:38 +11:00
Japheth Lim 5d1525bb7a access: proof style cleanup (for GrantReply patch)
As the title says, this commit introduces general formatting and style
cleanup, but only for the parts touched by the recent GrantReply patch.
2018-12-10 20:01:38 +11:00
Japheth Lim 6dfe687ac1 access: fix incorrect spec for bound notifications 2018-12-10 20:01:38 +11:00
Thibaut Perami d3542f1cbf infoflow: Fix for GrantReply (SELFOUR-6)
Mainly repercusion of changes occuring for Access:
  - Fix subjectReads and subjectAffects with new authorities
  - SILC label is forbidden to contain any transferable cap
  - Lots of lemma that required is_subject on their parameter now only
    require aag_can_read when possible
  - Major cleanup of the integrity ==> subjectAffects proofs for kheap,
    CDT and user memory.
2018-12-10 20:01:38 +11:00
Thibaut Perami 86bbe323c8 access: Fix for GrantReply (SELFOUR-6)
Integrity and pasRefined are majorly changed

The main repercussions are:
 - 3 new authorities in the policy: Call, Reply, and DeleteDerived
 - The cdt and the caps state are linked in pasRefined
 - CDT parentship no longer implies control in certain cases (is_transferable)
 - CDT parentship now implies DeleteDerived
 - Introduction of cdt_change_allowed that specifies which slot your are
   allowed to modify
 - Integrity for CDT and CDT list use cdt_changes_allowed
 - Integrity for objects in now expressed as a transitive closure of
   atomic transition rules
2018-12-10 20:01:38 +11:00
Rafal Kolanski 4ee84d6348 x64 crefine: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Rafal Kolanski 0d292f48dd arm-hyp crefine: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Rafal Kolanski 103fc3656e x64 refine: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Rafal Kolanski 0ead52863d arm-hyp refine: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Rafal Kolanski 8d137b4e86 x64 ainvs: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:38 +11:00
Rafal Kolanski 25a6d636e0 arm-hyp ainvs: cleanup: unused lemmas 2018-12-10 20:01:37 +11:00
Rafal Kolanski 1975b57c11 arm-hyp ainvs: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:37 +11:00
Rafal Kolanski a34e0fc6f8 arm crefine: update for GrantReply (SELFOUR-6) 2018-12-10 20:01:37 +11:00
Rafal Kolanski c02d0406f5 arm refine: update for GrantReply (SELFOUR-6)
Initial setup and sorrying by Thibaut Perami.
2018-12-10 20:01:37 +11:00
Thibaut Perami ddf222700f haskell: Update for GrantReply (SELFOUR-6) 2018-12-10 20:01:37 +11:00
Thibaut Perami c955ff4917 aspec + arm ainvs: Update mask_rights to mask master reply caps 2018-12-10 20:01:37 +11:00
Thibaut Perami d3548a5720 arm ainvs: Cleanup 2018-12-10 20:01:37 +11:00
Thibaut Perami 2c065aa62c arm ainvs: Add is_valid_vtable_root as vtable_slot invariant 2018-12-10 20:01:37 +11:00
Thibaut Perami 3f26cde16a arm ainvs: Update for GrantReply (SELFOUR-6) 2018-12-10 20:01:37 +11:00
Thibaut Perami 1b0b188679 aspec: Fix send_fault_ipc to call send_ipc with is_call at true 2018-12-10 20:01:37 +11:00
Thibaut Perami 10145250c2 aspec: Update ASpec for GrantReply (SELFOUR-6) 2018-12-10 20:01:37 +11:00
Gerwin Klein 5e51fa05d7 lib: tag correctly as BSD
(Two library files were incorrectly tagged as GPL).
2018-12-10 15:58:03 +11:00
Michael Sproul cac9472e44 sys-init: eliminate non-constructive UNIV 2018-11-26 16:05:37 +11:00
Michael Sproul 94ede44f36 sys-init: make slots_of_list constructive 2018-11-26 15:25:00 +11:00
Michael Sproul 7a92cd4f63 sys-init: make bound_irq_list constructive
This takes the set comprehension and existential of `bound_irqs` out of the
model, which makes translating it to executable code more straightforward.
2018-11-26 15:24:44 +11:00
Edward Pierzchalski 3d49538f2f arm crefine: mark some lemmas as FIXME.
There are some good simp set candidates as well as ones that should be
moved.
2018-11-21 17:12:23 +11:00
Edward Pierzchalski 21cc25f131 lib: Add stray lemmas and methods.
These were unused items in ARM CRefine, now kept for potential future
usefulness.
2018-11-21 17:12:23 +11:00
Edward Pierzchalski 17f3263d5e arm crefine: remove some unused lemmas.
Add some comments on unused lemmas that we want to move or keep.
2018-11-21 17:12:23 +11:00
Japheth Lim fd6d4b87ae refactor einvs from Refine and Access into AInvs 2018-11-20 16:34:29 +11:00
Edward Pierzchalski e7fa23ab2c lib: fix up Levity dependency tracking
Uses proof body terms to disambiguate the names encoutered in
dependency extraction, rather than using (for example)
Thm.full_prop_of.

The result is that this catches a few more missing dependencies,
enough to correctly identify unused lemmas large sessions
like CRefine.
2018-11-16 15:15:55 +11:00
Gerwin Klein b8a99035dc lib: an abbreviation command with pretty printing inside locales
Normal abbreviations are not contracted on pretty printing when defined
inside a locale. This commit provide the command locale_abbrev which does
contract on pretty print even when defined inside a locale. It cannot be
used with abbreviations that mention fixed locale variables (whereas the
standard abbreviations can).

Co-authored-by: Rafal Kolanski <rafal.kolanski@data61.csiro.au>
2018-11-15 22:56:01 +11:00
Gerwin Klein 558aa5ca05 riscv platform: address space layout diagram; fixed pAddr_base 2018-11-06 14:14:26 +11:00