Commit Graph

1355 Commits

Author SHA1 Message Date
Matthew Brecknell 6ef4c2d60f arch_split: invariants: split InterruptAcc_AI [VER-606] 2016-07-09 11:04:22 +10:00
Matthew Brecknell 27c5ae792e arch_split: invariants: split CSpaceInv_AI [VER-604], CSpace_AI [VER-605] 2016-07-09 11:04:22 +10:00
Alejandro Gomez-Londono dced98a45d arch_split: AInvs.thy [VER-581] 2016-07-07 14:13:40 +10:00
Miki Tanaka eb7f7b1564 arch-split: Tcb_AI.thy done 2016-07-07 13:57:16 +10:00
Alejandro Gomez-Londono 89b64646ec test_munge.sh and make_munge.sh updated to support
the new --ast flag in c-parser [VER-584][VER-512][NO_PROOF]
2016-07-06 16:59:37 +10:00
Alejandro Gomez-Londono 3ef9d3221c arch_split: Interrupt_AI [VER-578] 2016-07-05 17:53:53 +10:00
Thomas Sewell 50ab074d71 Tweak serial code, don't reference print.
The function print isn't in scope in the Isabelle environment.
2016-07-05 17:37:14 +10:00
Thomas Sewell 20c50e46b0 Finish serialisation code for AST. 2016-07-05 17:37:14 +10:00
Thomas Sewell 0490bcba6a Start of AST-dump analysis for c-parser.
Give the standalone c-parser the facility to dump out its internal AST. Only
half finished, I got bored writing serialisers for the many syntax datatypes.

There has been some discussion about how to check whether an seL4 change
impacts verification. My thought was that the obvious thing to check is the
C-parser's AST. If this is unchanged, then further analyses must be unchanged.
2016-07-05 17:37:14 +10:00
Matthew Brecknell d50e43d717 arch_split: invariants: split CNodeInv_AI [VER-573] 2016-07-04 11:56:53 +10:00
Japheth Lim 35e260ec0b autocorres: add conceptual documentation for AutoCorresUtil
This is the “hub” that ties most of the other phases together,
so documenting its control/data flow is quite important.
2016-06-30 17:48:20 +10:00
Gerwin Klein c8cb55a9e5 Merge pull request #72 in SEL4/l4v from readme-github-11 to master
* commit '081c7337a0724e23bd6246d35bcdf98d32a211cb':
  README: adjusted latex dependencies and Isabelle version
2016-06-30 06:42:09 +00:00
Japheth Lim 8b598d08a0 autocorres: add acceptance tests for corner cases in name handling 2016-06-30 15:20:41 +10:00
Japheth Lim c31ee7a6a9 autocorres-crefine: update CRefine demo to work after AutoCorres refactor
Also fixes an AutoCorres bug that surfaced in the demo.
2016-06-30 14:41:55 +10:00
Japheth Lim 0afb748b1b autocorres: fix up remaining failures in test suite (all typo level) 2016-06-30 10:00:39 +10:00
Japheth Lim 162a2266a1 autocorres: revert debugging slag in testsuite 2016-06-30 10:00:39 +10:00
Japheth Lim 62b43e360c autocorres: remove Statistics and print_stats code
The “statistics” output has been disabled for some time, and the
print_stats option has never been part of the publicly documented
interface, so hopefully this removal will go unnoticed.

Some of the terms measured by the stats code are available through
the recently-added trace_* options (but not all).
2016-06-30 10:00:39 +10:00
Japheth Lim f67c6146ef autocorres: remove obsolete trace recording mechanism 2016-06-30 10:00:39 +10:00
Japheth Lim b7f8aa0ba3 autocorres: move new modules over the old ones
This is the “last” step of the Jira VER-517/VER-522 refactoring
(still does not support pausing between phases, but the relevant
infrastructure is there now).

Ought to pass AutoCorresTest suite now.
2016-06-30 10:00:39 +10:00
Japheth Lim 6b72212597 WIP: autocorres: make trace results available again
This changes the interface to access traces, making the underlying
symtabs explicit.
2016-06-30 10:00:39 +10:00
Japheth Lim cc1329c232 trivial: autocorres: remove temporary debugging output 2016-06-30 10:00:39 +10:00
Japheth Lim b7c354f798 autocorres: actually check results of type strengthening demo 2016-06-30 10:00:39 +10:00
Japheth Lim a933c6b7b7 autocorres: update FunctionInfo demo theory 2016-06-30 10:00:39 +10:00
Japheth Lim 3a3a8b4983 WIP: autocorres: remove some debugging code 2016-06-30 10:00:39 +10:00
Japheth Lim 3ade9cb717 WIP: autocorres: parallelise ac_corres; add mono theorems to theory 2016-06-30 10:00:39 +10:00
Japheth Lim e238064215 WIP: autocorres: parallelise ac_corres; add mono theorems 2016-06-30 10:00:39 +10:00
Japheth Lim b8a1743148 WIP: autocorres: more incremental translation fixes; update a testcase 2016-06-30 10:00:39 +10:00
Japheth Lim 1181b9bc1f WIP: autocorres: restore incremental translation behaviour
The incremental translation demo in crefine has not been updated yet.
2016-06-30 10:00:39 +10:00
Japheth Lim 1ad6d39192 autocorres: restore ac_corres proof generation 2016-06-30 10:00:39 +10:00
Japheth Lim 10de34936e autocorres: split recursive groups less eagerly (partial revert)
Brain fart: the corres proofs still have recursive assumptions,
even if the final function does not use them. This means that
attempting to split groups prior to definitions is doomed to fail.
2016-06-30 10:00:39 +10:00
Japheth Lim 8c7524405b WIP: autocorres: start merging new code back into autocorres.ML 2016-06-30 10:00:39 +10:00
Japheth Lim e14da9e3d4 WIP: autocorres: refactor some L1 helpers 2016-06-30 10:00:39 +10:00
Japheth Lim 2f53afd90b WIP: autocorres: refactor add_defs 2016-06-30 10:00:39 +10:00
Japheth Lim 6c35cf176a trivial: autocorres: refactor symtab_merge 2016-06-30 10:00:39 +10:00
Japheth Lim 6ce286e3b6 WIP: autocorres: refactor result sequence type 2016-06-30 10:00:39 +10:00
Japheth Lim 4a06a63ae3 WIP: autocorres: refactor measureT 2016-06-30 10:00:39 +10:00
Japheth Lim 5277de2927 WIP: autocorres: refactor define_funcs a bit more 2016-06-30 10:00:39 +10:00
Japheth Lim 2d24e1ebef WIP: autocorres: refactor prepare_fn_body 2016-06-30 10:00:39 +10:00
Japheth Lim 46460cedf0 WIP: autocorres: refactor rec_callees calculation 2016-06-30 10:00:39 +10:00
Japheth Lim 7b2832861d WIP: autocorres: make SimplConv.convert/define more uniform with other phases 2016-06-30 10:00:39 +10:00
Japheth Lim a5b98df2b6 WIP: autocorres: clean up more uses of free and schematic variables 2016-06-30 10:00:39 +10:00
Japheth Lim a4e2a85397 WIP: autocorres: detect splitting of recursive groups; misc fixes
The topology of recursive function groups can change due to dead code
elimination. This used to be handled (buggily, after define stages) by
the old code. This commit attempts to handle it properly (between convert
and define stages), using a new variant of the Seq data structure.
(Still not done for TS, though.)

Also (literally) fixes many free variables that used to be unhygienic.

Also makes the L2,HL,WA dataflow more uniform (but not yet refactored).
2016-06-30 10:00:39 +10:00
Japheth Lim e923520acd autocorres: remove unused code from AutoCorresUtil 2016-06-30 10:00:39 +10:00
Japheth Lim bbf889882e WIP: autocorres: VER-517 prototype for heap lifting
Heap lifting is annoying because we need to join all intermediate L2 results
before defining the lifted heap and proving heap lemmas.
This has been refactored into a new prepare_heap_lift stage that runs between
L2 conversion and HL proper.
2016-06-30 10:00:38 +10:00
Japheth Lim 08c3475a09 WIP: autocorres: crude VER-517 prototypes for WA and TS phases
HL is still pending; the new code also needs to be refactored itself.
2016-06-30 10:00:38 +10:00
Japheth Lim 84cb9deaf8 WIP: autocorres: split up function_info data structures
With this we move away from a global mutable fn_info; instead we will
use a table of persistent (lazy) entries for each phase.
Function call metadata is also now either stored locally or recomputed
on-demand for each stage (with a few TODOs).
2016-06-30 10:00:38 +10:00
Japheth Lim 2caf6520e5 WIP: autocorres: draft of more modular dependencies for L1, L2
Prototype for Jira VER-517.
2016-06-30 10:00:38 +10:00
Gerwin Klein 081c7337a0 README: adjusted latex dependencies and Isabelle version
closes github issue #11
2016-06-30 09:02:46 +10:00
Japheth Lim 3400debdc2 autocorres: add test case for Jira issue VER-591 2016-06-29 14:48:16 +10:00
Matthew Brecknell 33a7c4becb merge master into arch_split 2016-06-27 17:19:39 +10:00