Commit Graph

482 Commits

Author SHA1 Message Date
Thomas Sewell 5f4a25b078 Improve guard handling in GraphRefine.
Needed for recent changes to how global validity assertions are
generated.
2015-07-28 22:43:03 +10:00
Thomas Sewell e4ab39f0a6 Repair merge. 2015-07-28 18:12:53 +10:00
Thomas Sewell a0b3a569df Really add all necessary PGlobalValid assertions. 2015-07-28 17:40:21 +10:00
Matthew Fernandez b780e57759 camkes: Shuffle some helper lemmas around; labels as strings.
Moves some unnecessary stuff out of the locale and now specifies the label type
as `string` rather than a locale parameter. The purpose of the latter is to
allow us to talk about concrete labels rather than continually falling back on
the user's projection, but it's not clear yet whether this is a big win.
2015-07-27 16:09:59 +10:00
Matthew Fernandez 232ecb183f camkes: Rename `generate` to `state_of`.
This makes more sense for upcoming changes where we generate a policy as well.
2015-07-27 16:09:06 +10:00
Matthew Fernandez 9b13489a1f camkes: Update control TCB naming scheme.
This commit corresponds to CAmkES changes to disambiguate the name of a TCB for
a control thread.

See also camkes-tool/master@PR#113 on GINCA
2015-07-27 16:04:15 +10:00
Matthew Fernandez 0e19da32f4 camkes: Remove Grant from IPC buffer caps.
This makes no difference in the implementation, but is conceptually cleaner.

See also camkes-tool/master@c4e81e6116
2015-07-27 16:01:44 +10:00
Matthew Fernandez 422b1ee5ec camkes: Also depend on DPolicy in CamkesCdlBase. 2015-07-27 15:59:42 +10:00
Joel Beeren 8bbf48137d Merge pull request #8 from jbeeren/replycap
SELFOUR-220: When calling handleWait, only delete the TCB's ReplyCap when actually waiting on a synchronous
endpoint.
2015-07-23 14:59:26 +10:00
Joel Beeren 3372cd32a8 SELFOUR-220: When calling handleWait, only delete the
TCB's ReplyCap when actually waiting on a synchronous
endpoint.
2015-07-23 14:45:17 +10:00
Japheth Lim ddb13653fa autocorres: fix rules for heap lifting of arrays.
Should resolve JIRA VER-423.
2015-07-21 18:57:57 +10:00
Japheth Lim b085351fe9 autocorres: don't give up if HL output contains unlifted code.
Discussion at VER-437.
2015-07-20 18:48:15 +10:00
Thomas Sewell 440081c0f4 Add a gsMaxObjectSize as needed. 2015-07-17 14:30:08 +10:00
Thomas Sewell af86632985 Fix remaining sorries in crefine. 2015-07-16 14:44:56 +10:00
Thomas Sewell 0b5182bd84 More adjustments to graph export/refine. 2015-07-16 13:44:25 +10:00
Thomas Sewell 4211cd2b1a Progress on upgrading GraphRefine.
Needed to handle new concepts being exported from Simpl.
2015-07-15 21:41:07 +10:00
Thomas Sewell b5f796184a Repair spec/refine, I think. 2015-07-15 17:25:47 +10:00
Thomas Sewell 53e1c0c7df Update to SimplExport, fixes. 2015-07-15 11:48:39 +10:00
Thomas Sewell 44799b7663 Really add all necessary PGlobalValid assertions. 2015-07-15 11:48:39 +10:00
Thomas Sewell e9180d5cb5 Repair refine/crefine for WCET annotations. 2015-07-14 14:23:29 +10:00
Thomas Sewell b7bb3666f4 Update haskell for proving WCET annotations. 2015-07-14 14:23:29 +10:00
Thomas Sewell ca4391881c WIP on WCET annotations. 2015-07-14 14:23:29 +10:00
Daniel Matichuk 5c1e998b3a Fixed theory import for Eisbach_WP 2015-07-09 21:49:47 -06:00
Daniel Matichuk d9bef8965c Moved wp-specific eisbach methods higher up import chain 2015-07-10 12:51:15 +10:00
Gerwin Klein 10bb7b39e3 remove NonDetMonad from C-Parser import chain
Including NonDetMonad too early introduces too many name clashes.
2015-07-09 14:47:25 +10:00
Daniel Matichuk 5c6a3371c4 Removed unused "Noting" 2015-07-08 17:05:19 +10:00
Daniel Matichuk 12a3fd829b Point to correct (existing) Rule_By_Method 2015-07-08 16:59:40 +10:00
Daniel Matichuk f1303ea5a6 Added hotfix for rule instantiation attributes (of/where) 2015-07-08 16:58:14 +10:00
Daniel Matichuk 30db9bb7a5 ArchAcc_AI checks with new subgoal command 2015-07-08 15:44:34 +10:00
Daniel Matichuk b2d3cd6ebb Added Rule_By_Method (@ and # attributes) 2015-07-08 15:44:33 +10:00
Daniel Matichuk 88d9281987 Updated to most recent version of subgoal focus (to match official version) 2015-07-08 15:44:33 +10:00
Daniel Matichuk 2b10a875ca some usage of subgoal command 2015-07-08 15:44:33 +10:00
Daniel Matichuk 1f0f989498 updated to newest version of subgoal_focus 2015-07-08 15:44:33 +10:00
Daniel Matichuk 9882205e15 Most recent version of subgoal focus tools 2015-07-08 15:44:33 +10:00
Daniel Matichuk 173a4411b1 importing Eisbach by default, with some boilerplate 2015-07-08 15:44:33 +10:00
Daniel Matichuk 2423f01fdf Added "subgoal" infrastructure 2015-07-08 15:44:33 +10:00
Daniel Matichuk 876e528a92 removed stale version of eisbach (now included in Isabelle2015). 2015-07-08 15:44:33 +10:00
Matthew Fernandez 7e3b35d348 misc/autostop: Teach stop how to send SIGABRT and SIGTERM. 2015-07-02 15:28:14 +10:00
Matthew Fernandez d7e874c833 Access: Fix trivial comment typo. 2015-07-01 10:51:04 +10:00
Matthew Fernandez ec7c8bd815 lib: Various trivialities related to CAmkES/CapDL proofs.
This commit contains a grab bag of lemmas used in CAmkES↔CapDL correspondence
proofs. Some of them are exceedingly brain dead. This is, in most cases,
because they have been extracted from automated proofs in order to avoid
generated proofs repeatedly proving the same trivial facts.
2015-06-30 12:26:08 +10:00
Toby Murray b7f679338d remove long-broken and unused Residual.thy 2015-06-25 16:35:32 +10:00
Japheth Lim 8e70524fc6 Improve zsh completion script and update slightly for 2015. 2015-06-22 20:42:28 +10:00
Japheth Lim da21a822a5 autocorres: remove an expensive rule from the no_opt simpset. 2015-06-11 15:34:56 +10:00
Japheth Lim 65fd1ba203 autocorres: make a faster version of trace_solve_tac for when no trace is needed.
This change results in more code to keep in sync, so we will need to see if
the performance improvements are worthwhile.
2015-06-11 15:34:17 +10:00
Matthew Fernandez f84a427591 camkes: Remove empty TCB cap slots.
These were phrased as slots containing NULL caps, but the translation of CapDL
specifications into Isabelle actually just restricts the domain of the
underlying capability map. This is much cleaner and we now have exact
equivalence.
2015-06-11 15:01:45 +10:00
Matthew Fernandez b49a072fea camkes: Fix cap rights on endpoints of the seL4RPC connector.
This connection actually uses read/write caps on both sides because it is
implemented using Send and Wait. It may be worthwhile modelling seL4RPCCall
(which is implemented using Call and ReplyWait) as well. This would be a
trivial extension.
2015-06-11 15:00:19 +10:00
Matthew Fernandez b91d873d7d camkes: Skip the NULL slot when calculating CSlot offsets.
CAmkES deliberately skips over CSlot 0 when allocating caps to allow typos and
misallocations to be more easily detected. This commit captures this logic in
the generator function.
2015-06-11 14:59:04 +10:00
Matthew Fernandez a55d61cb42 camkes: Implement the actual CNode size calculation of the implementation.
Previously, the CapDL-generating function assumed a CNode size of 12 bits for
each component instance, though this was known to be inaccurate. In the
implementation of CAmkES, the code generator calculates the minimum required
size of each CNode on the fly. This commit updates the formalised generator to
perform the same calculation. The calculation is currently written in terms of
the `LEAST` binder, which as it turns out is sometimes awkward to reason about.
It may be worthwhile rephrasing this in future.
2015-06-11 14:55:50 +10:00
Matthew Fernandez cabb3e8124 camkes: Remove `no_intent` for generated TCBs.
The CapDL translation tools produce threads with an undefined intent, rather
than no intent. This commit modifies the CAmkES generation to do the same to
ease the correspondence proof.
2015-06-05 14:50:24 +10:00
Matthew Fernandez fc9048afee camkes: Fix: IRQ CNodes appear as 0 bits, not 1 bit.
Presumably this is only the case for when there are no assigned interrupts in
the system. These theories will need some tweaking to support systems with
interrupts.
2015-06-04 15:57:22 +10:00