Commit Graph

25 Commits

Author SHA1 Message Date
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
Joel Beeren 81064fdb55 idle-thread-pd: run idle thread with the global PD all the time.
This avoids the multicore scenario of the idle thread running in the
address space that has been deleted by a thread running on another core.
2017-07-11 11:29:34 +10:00
Matthew Brecknell 1d43c99acc Isabelle2016-1: fix Word_Miscellaneous import path
This was previously missed, because Isabelle ignores the import path
when the file is already part of a loaded image.

Reported-by: Daniel Matichuk <Daniel.Matichuk@data61.csiro.au>
2017-02-08 16:53:14 +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
Gerwin Klein 47119bf43e wp_cleanup: update proofs for new wp behaviour
The things that usually go wrong:
  - wp fall through: add +, e.g.
      apply (wp select_wp) -> apply (wp select_wp)+

  - precondition: you can remove most hoare_pre, but wpc still needs it, and
    sometimes the wp instance relies on being able to fit a rule to the
    current non-schematic precondition. In that case, use "including no_pre"
    to switch off the automatic hoare_pre application.

  - very rarely there is a schematic postcondition that interferes with the
    new trivial cleanup rules, because the rest of the script assumes some
    specific state afterwards (shouldn't happen in a reasonable proof, but
    not all proofs are reasonable..). In that case, (wp_once ...)+ should
    emulate the old behaviour precisely.
2017-01-13 14:04:15 +01:00
Matthew Brecknell b5158e31bc Isabelle2016-1: fix proofs involving UNION
SUPREMUM changed from a definition to an abbreviation.

A number of proofs that previously used blast, fastforce or auto to
solve goals involving UNION, now either fail or loop. This commit
includes various ad-hoc workarounds.
2017-01-05 14:27:33 +11:00
Matthew Brecknell 41d4aa4f1d Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
Alejandro Gomez-Londono 879ac30249 Lib: Addition of auxiliary lemmas in basic theories to better support CRefine
* Generalized version of bind_inv_inv_comm for easier swapping inside
  the nondet monad

* New ccorres_symb_exec_r_known_rv

* New zip_take lemmas for handling `take n (zip x y)` situations

  tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:56 +11:00
Joel Beeren 2553371a14 SELFOUR-64: Remove general Recycle operation
This removes the RecycleCap CNodeInvocation, whilst
retaining recycle behaviour for Endpoints -- now renamed
CNodeCancelBadgedSends.
2016-11-18 14:11:12 +11:00
Daniel Matichuk 92139db60e autolevity: refine tracing apply everywhere to work via Proof module hooks
This avoids doing redundant tactic operations at the top-level and lets
us trace "by" statements easily.
2016-06-23 14:02:40 +10:00
Gerwin Klein 3813035970 lib: NonDetMonadLemmaBucket needs no words 2016-05-16 21:11:40 +10:00
Gerwin Klein 54581f1c9a lib/WordSetup: use the full Word_Lib entry 2016-05-16 21:11:40 +10:00
Gerwin Klein f0faa90f8a lib/spec/proof/tools: fix word change fallout 2016-05-16 21:11:40 +10:00
Gerwin Klein 84b923a677 lib: start disentangling spaghetti word dependencies 2016-05-16 21:11:40 +10:00
Daniel Matichuk d37a344783 cleanup for prod and when keyword 2016-01-12 16:07:28 +11:00
Daniel Matichuk b7563eb788 fix lib for isabelle 2016 2016-01-12 14:58:16 +11:00
Gerwin Klein 12fa86863a fewer warnings 2015-05-16 19:52:49 +10:00
Matthew Fernandez 02c2f749b8 lib: Add a hoare_assume_pre variant for validNF. 2015-02-24 10:11:59 +11:00
Gerwin Klein 1af1d2b67b some of the global Isabelle2014 renames
option_case -> case_option
sum_case -> case_sum
prod_case -> case_prod
Option.set -> set_option
Option.map -> map_option
option_rel -> rel_option
list_all2_def -> list_all2_iff
map.simps -> list.map
tl.simps -> list.sel(2-3)
the.simps -> option.sel
2014-08-09 15:39:20 +10:00
Lars Noschinski fe36a97b4d Port AutoCorres to Isabelle 2014-RC0 2014-08-08 17:29:54 +10:00
Corey Lewis d52d8ad148 Fix previous commit. 2014-07-19 00:04:21 +10:00
Corey Lewis 07b85fe034 Move some more lemmas into lib. 2014-07-18 17:23:07 +10:00
Gerwin Klein 84595f4233 release cleanup 2014-07-17 18:22:50 +02:00
Gerwin Klein 2a03e81df4 Import release snapshot. 2014-07-14 21:32:44 +02:00