Commit Graph

38 Commits

Author SHA1 Message Date
Mitchell Buckley 2cf89e20c8 Cleanup some FIXMEs in AInvs and related sessions
Mostly moving lemmas up into various lemma bucket theories. Also:
* replace cte_wp_at_eqD with cte_wp_at_norm (equal lemmas)
* pd_shifting_gen generalise pd_shifting' in 2 architectures
* remove some redundant crunch lemmas

Signed-off-by: Mitchell Buckley <Mitchell.Buckley@data61.csiro.au>
2021-07-16 14:13:07 +10:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
IlmariReissumies 0eefa4b6b6 lib: rename lemma to prevent collision with List.sorted_filter 2019-04-05 12:12:49 +11:00
IlmariReissumies bed1ee9b5e lib: add two lemmas about the sorted predicate
Courtesy of @jalim.
2019-04-05 10:41:42 +11:00
Japheth Lim 7a38ef6331 lib: move FastMap lemma to LemmaBucket 2018-10-23 15:44:11 +11:00
Gerwin Klein 62b0ab207b Word_Lib: consolidate LemmaBucket and Lib lemmas into Word_Lib 2018-08-20 09:06:36 +10:00
Gerwin Klein 6b9d9d24dd Isabelle2018: new "op x" syntax; now is "(x)"
(result of "isabelle update_op -m <dir>")
2018-08-20 09:06:35 +10:00
Rafal Kolanski d4996217b3 lib: add generic lemmas from SELFOUR-584 updates
Mainly concerning word_ctz and enumeration_both.
2018-06-15 18:48:47 +10:00
Joel Beeren 4dcd4df2b6 lib: add foldl lemma to LemmaBucket 2018-04-19 05:27:05 +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
Rafal Kolanski 877312f080 lib: generic/word/monad/hoare lemmas from SELFOUR-242 verification
Notably useful is hoare_vcg_lift_imp' which generates an implication
rather than a disjunction.

Monadic rewrite rules should be modified to preserve bound variable
names, as demonstrated by monadic_rewrite_symb_exec_l'_preserve_names.
Addressing this more comprehensively is left as a TODO item for the
future (see VER-554).
2017-11-27 21:00:04 +11:00
Alejandro Gomez-Londono 796887d9b1 Removes all trailing whitespaces 2017-07-12 15:13:51 +10:00
Rafal Kolanski a40d6986fd lib: word and misc lemmas from SELFOUR-242 proofs
These precipitated out during cleanup.
2017-02-09 15:05:52 +11:00
Joel Beeren 3dafec7d46 backport changes to ARM proofs from X64 work in progress
- replace ARM-specific constants and types with aliases which can be
  instantiated separately for each architecture.
- expand lib with lemmas used in X64 proofs.
- simplify some proofs.

Also-by: Matthew Brecknell <Matthew.Brecknell@data61.csiro.au>
2017-01-27 08:31:07 +11:00
Matthew Brecknell 41d4aa4f1d Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
Rafal Kolanski 72349f81fd Revert SELFOUR-242: invert bitfield scheduler and optimise fast path
This reverts:
- a67b443ca5
    "SELFOUR-242: update goal number based indentation in Fastpath_C"
- f704cf0404
    "SELFOUR-242: invert bitfield scheduler and optimise fast path"

Verification confirmed functional correctness and refinement of the
system in this case. However, guarantees on thread scheduling and
fairness are not modeled in the current verification. Once this issue is
addressed, SELFOUR-242 will be re-examined.
2016-11-16 14:02:50 +11:00
Rafal Kolanski f704cf0404 SELFOUR-242: invert bitfield scheduler and optimise fast path
* Reverse the level 2 of the bitmap scheduler to move the highest priority
  threads' level 2 entries into the same cache line as the level 1.
* Use the bitfield scheduler to make the fast path a more common occurrence.
* Change possibleSwitchTo to not invoke scheduler when the fast path would not
  invoke it either (using implicit assumptions about the current thread being
  the highest priority schedulable thread)
2016-11-15 09:20:31 +11: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 84b923a677 lib: start disentangling spaghetti word dependencies 2016-05-16 21:11:40 +10:00
Japheth Lim bb83b53b15 Merge branch 'master' into autocorres-seL4
This updates autocorres-seL4 to Isabelle2016.

Conflicts:
	proof/crefine/Refine_C.thy
2016-03-29 14:07:54 +11:00
Japheth Lim 1b14082291 autocorres-crefine: add pre-no-fail flag to corres. Updated AI+Refine. 2016-01-22 15:08:14 +11:00
Daniel Matichuk 8981f9d5aa removed deleted theories from imports 2016-01-12 18:10:16 +11:00
Thomas Sewell cb6234a718 Move strengthen rules to Strengthen; adjust WPBang. 2015-10-29 11:27:54 +11:00
Matthew Fernandez 36c5cb6860 lib: Another CAmkES helper lemma. 2015-10-23 11:36:39 +11:00
Matthew Fernandez ad1718d040 lib: More random helpers brought to you by CAmkES. 2015-10-20 17:15:29 +11:00
Matthew Fernandez bcdadb1816 lib: Some pair-related lemmas for LemmaBucket. 2015-09-09 18:44:19 +10:00
Matthew Fernandez 8f50ba4893 lib: Some more trivial map-related lemmas. 2015-08-15 12:17:26 +10:00
Matthew Fernandez e5340b5cca lib: More trivial helpers from CAmkES. 2015-08-12 13:54:56 +10:00
Matthew Fernandez 5073d065ad lib: Fix: Rename duplicate lemma.
...and now back to our regularly scheduled program.
2015-08-11 17:27:09 +10:00
Matthew Fernandez 10f963db36 lib: Another trivial lemma for supporting CAmkES. 2015-08-11 15:53:28 +10:00
Matthew Fernandez 3f20d24822 lib: Import various helper lemmas from CAmkES. 2015-08-11 12:25:22 +10:00
Matthew Fernandez f253415a9f lib: Add a trivial lemma about `dom`.
This comes in handy when reasoning about large maps.
2015-08-07 12:16:46 +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
Matthew Fernandez 6026d54cd7 lib: Misc helper lemmas. 2014-11-21 19:23:33 +11:00
Matthew Fernandez 93e8a15d53 lib: misc lemmas. 2014-11-12 11:05:00 +11:00
Matthew Fernandez fb56249d2c lib: trivial helper for dealing with ∀ and pairs.
Comes in handy when juggling validNF_make_schematic_post in combination with a
Hoare triple with multiple bound variables.
2014-11-07 15:17:53 +11:00
Matthew Fernandez 28c30a9cc0 lib: yet more helper lemmas. 2014-11-07 12:53:21 +11:00
Gerwin Klein 2a03e81df4 Import release snapshot. 2014-07-14 21:32:44 +02:00