Commit Graph

27 Commits

Author SHA1 Message Date
Gerwin Klein 1cbefe0eb7 autocorres: update cartouches for Isabelle2019 2019-06-13 16:22:33 +10:00
Japheth Lim 071ebbd398 lib: move @{mk_term} antiquotation from AutoCorres; add examples 2019-05-17 18:07:59 +10:00
Gerwin Klein b5cdf4703f globally use session-qualified imports; add Lib session
Session-qualified imports will be required for Isabelle2018 and help clarify
the structure of sessions in the build tree.

This commit mainly adds a new set of sessions for lib/, including a Lib
session that includes most theories in lib/ and a few separate sessions for
parts that have dependencies beyond CParser or are separate AFP sessions.
The group "lib" collects all lib/ sessions.

As a consequence, other theories should use lib/ theories by session name,
not by path, which in turns means spec and proof sessions should also refer
to each other by session name, not path, to avoid duplicate theory errors in
theory merges later.
2018-08-20 09:06:34 +10:00
Thomas Sewell b0f2217af4 lib/wp: Remove old wp combinator rules.
These combinator rules do something like what wp_pre does now.

They were helpful in the ancient past, but now that wp_pre exists it is
much better to just use automation.
2018-03-16 14:51:31 +11: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 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 8c7524405b WIP: autocorres: start merging new code back into autocorres.ML 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
Japheth Lim b645a60e87 autocorres: record all intermediate translation data
This allows us to perform incremental translation (VER-518) without
resorting to hacks.
2016-06-02 16:50:03 +10:00
Japheth Lim 26a7907c95 Merge pull request #43 in SEL4/l4v from ~JALIM/l4v:autocorres-seL4 to master
* commit 'ecbb860532b4c576fc4726a805802f16bcf5302c': (29 commits)
  autocorres-crefine: specialise corres_no_failI for compatibility with Refine
  Add license tags for autocorres-crefine files
  crefine: refactor AutoCorresTest a bit
  autocorres-crefine: remove local debugging imports
  Fix InfoFlowC to accommodate corres_underlying changes.
  Fix DRefine to accommodate corres_underlying changes.
  autocorres-crefine: experiment with manually translating a function (clzl).
  autocorres-crefine: experiment with translating bitfield_gen specs.
  autocorres-crefine: start a test case for function calls.
  autocorres-crefine: update example proofs to work with no_c_termination, which does not require proving termination for the C spec.
  autocorres: add user option "no_c_termination" for previous patch.
  Making termination proof optional for AutoCorres.
  WIP: autocorres: hacky proof of concept for incremental translation.
  autocorres: add some missing WordAbstract rules.
  autocorres-crefine: fix some comments in work theory.
  autocorres-crefine: prove modifies and (simple) terminates specs.
  autocorres-crefine: experiment with generating modifies proofs
  autocorres-crefine: run autocorres in kernel_all_substitute locale
  autocorres-crefine: update another corres_UL that snuck in before rebasing.
  autocorres-crefine: working ccorres for handleYield (modulo some white lies).
  ...
2016-05-19 01:19:58 +00:00
Gerwin Klein 322f1023f5 word_lib: adjust theory dependencies 2016-05-16 21:11:40 +10:00
Japheth Lim 9c46cf5211 autocorres: add user option "no_c_termination" for previous patch. 2016-05-02 17:20:00 +10:00
Thomas Sewell f50bb14f25 Making termination proof optional for AutoCorres.
By default, the only change users will see is a new parameter to
ac_corres which will default to 'True'.
2016-05-02 14:10:23 +10:00
Japheth Lim 71ac8aab51 autocorres: fix skip_heap_abs option to actually skip all work. 2016-01-22 14:52:45 +11:00
Japheth Lim 7393799ab2 autocorres: restore simplifier tracing functionality. 2015-10-26 14:18:10 +11:00
Japheth Lim 6ab50e0007 autocorres: rename "ccorres" predicate to "ac_corres".
This avoids a name conflict with the existing seL4 ccorres.
2015-09-21 18:20:25 +10:00
Gerwin Klein 854b89f071 autocorres: 2015 update 2015-05-21 19:49:11 +10:00
Gerwin Klein 17826f9b49 more Isabelle2015 update; AInvs up to (excluding) Syscall_AI
also includes some global replacements
2015-04-18 21:51:26 +01:00
David Greenaway 8dd95a344c autocorres: Translate missing functions into constant "FUNCTION_BODY_NOT_IN_INPUT_C_FILE".
Functions that are declared in the C file, called by other C functions,
but are never actually _defined_ are translated simply into a "fail"
monadic statement. This sometimes causes confusion to new users.

We update AutoCorres to instead emit a new constant:

  FUNCTION_BODY_NOT_IN_INPUT_C_FILE

defined simply as "fail" for such functions.
2014-12-03 14:49:12 +11:00
Japheth Lim be9947f3e1 autocorres: experimental support for tracing heap_lift and word_abstract.
See tests/examples/TraceDemo.thy for an example.
2014-10-31 20:02:58 +11:00
David Greenaway e9dde6477a autocorres: Move generic "set.ML" to "lib/" directory. 2014-10-15 11:11:20 +11:00
David Greenaway 8ce4825737 autocorres: Add "ptr_add_0_id" and "ptr_coerce.simps" back into the simpset.
These rules were removed because they are unhelpful for AutoCorres
internally, but remain generally useful for the end user.
2014-09-16 17:04:47 +10:00
Japheth Lim 7cc357e093 autocorres: translate accesses to nested structs correctly. See tests/proof-tests/nested_struct.thy.
This should (finally) close issue JIRA VER-321. Unfortunately it also breaks some other things,
such as heap_abs_syntax, which we'll need to examine later.
2014-09-09 14:10:52 +10:00
Gerwin Klein 2a03e81df4 Import release snapshot. 2014-07-14 21:32:44 +02:00