Commit Graph

50 Commits

Author SHA1 Message Date
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 a84ac9c411 Isabelle2016-1: remove references to empty 'assms'
Isabelle now only creates a local fact named 'assms' when there is a
non-zero number of structured assumptions.
2017-01-05 14:26:47 +11:00
Matthew Brecknell 41d4aa4f1d Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
Thomas Sewell 422347cd89 CRefine adjustments for ASM translation.
With analysis of ASM statements included, some previous modifies
proofs get weakened. This has in particular consequences for proofs
about a cache clean done during retype. Make a weak assumption here
(bytes which actually have a type are unchanged), and strengthen some
logic to fit with this.
2016-12-01 17:08:00 +11:00
Alejandro Gomez-Londono 9a166de8bc CRefine: Updating crefine for tcb_arch reserved_irq and arch_fault changes
* The majority of changes involved rephrasing references to tcb_context
  for the equivalente (arch_tcb_context_get o tcb_arch) (the same
  applies for set operations)

* Mayor refactoring of setMRs and handleFaultReply C functions both of
  which introduced new function calls when dealing with UserException
  and SyscallException faults

* handleFaultReply' (definition) was modified to include less redundant
  code

* handleFaultReply' (lemma) was completely refactored to use the
  monadicrewrite framework for "easier" and simpler proofs

* IsolatedThreadAction framework striped from Fastpath_C into new
  standalone file

  tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:56 +11:00
Miki Tanaka a2d707d17e SELFOUR-553: update rpidrurw in TCBConfigure for simpler Infoflow proofs. 2016-11-18 16:27:26 +11:00
Thomas Sewell 86731939f2 SELFOUR-444: CRefine proof for preemptible retype. 2016-11-02 11:19:09 +11:00
Thomas Sewell 9e7fb1daf0 SELFOUR-444: Structure of crefine.
Figured out how to pass the necessary assumptions about the region
being zeroed through the createNewObjects loop and resolve at
invokeUntyped_Retype. Still WIP.
2016-11-02 11:19:09 +11:00
Rafal Kolanski 00c5402b1a trivial: CRefine: handle SKIP introduced by SMP_COND_STATEMENT(); 2016-10-19 20:24:17 +11:00
Matthew Brecknell a3714e8190 SELFOUR-276: Finish proofs for maximum controlled priority (MCP)
To finish the proof of refinement to C, the specification for checkPrio
needed strengthening: the checkPrio spec now takes a machine word
argument. In the spec, priorities are still stored as 8-bit quantities,
however. Once the spec was strenthened, it was possible to remove some
redundant checks and mask operations from the C code.

A thread's maximum controlled priority (MCP) determines the maximum
thread priority or MCP it can assign to another thread (or itself).
2016-10-05 02:43:41 +11:00
Xin,Gao 8d4a8eb238 SELFOUR-421: fix coding style 2016-09-22 19:23:28 +10:00
Xin,Gao 113315d9a6 SELFOUR-421: merge and fix up to ArmConfidentiality proof 2016-09-22 19:21:56 +10:00
Xin,Gao 328846ee1a SELFOUR-421: crefine builds 2016-09-22 19:11:37 +10:00
Joel Beeren 99a4c5380c SELFOUR-421: broken crefine after conversation with gerwin 2016-09-22 19:11:36 +10:00
Gerwin Klein 322f1023f5 word_lib: adjust theory dependencies 2016-05-16 21:11:40 +10:00
Matthew Brecknell 56b226a608 arch_split: CRefine: use requalify instead of shadow 2016-05-06 08:59:33 +10:00
Matthew Brecknell b75fa2d4e2 arch_split: CRefine checking up to Recycle_C 2016-05-03 14:01:20 +10:00
Matthew Brecknell 04803bdf61 arch_split: CRefine: fixup some qualified references 2016-05-02 19:35:37 +10:00
Matthew Brecknell 8f489e14fa arch_split: CRefine checking up to StoreWord_C 2016-05-01 13:35:49 +10:00
Matthew Brecknell 84d2889d45 Isabelle2016: merge master into 2016 2016-02-19 16:17:26 +11:00
Gao Xin bc73b112bd l4v-sabre: change type of irq to be 10 word 2016-02-17 11:18:02 +11:00
Gao Xin 50fa257113 rebase and fix problems caused by new machine constants 2016-02-17 11:18:02 +11:00
Matthew Brecknell c65e290a8b Isabelle2016: merge master into 2016 2016-02-16 12:52:24 +11:00
Ramana Kumar a333cd3d52 2016: partial progress updating CRefine 2016-02-11 11:15:59 +11:00
Daniel Matichuk a34de66b9f arch_split: fix crefine up to Interrupt_C 2016-01-20 14:42:36 +11:00
Joel Beeren 1ccd4f5dcc conversion: Rationalise standard types 2015-12-10 21:24:22 +11:00
Thomas Sewell 7e40646c48 Proof up to Fastpath_C.
The very last twist of this: the proof that resolveAddressBits can
be seen as functional needs to change, a lot, because it's now
sensitive to gsCNodes. Still working on that.
2015-12-02 09:07:49 +11:00
Thomas Sewell 22f5f2f005 Further work on array assertions. 2015-12-02 09:07:15 +11:00
Thomas Sewell 4fd43512bb WIP on handling array assertions. Up to Retype_C.
This is quite a lot of work in the end. I've had to gut most of
Retype_C along the way. Nearly done there.
2015-12-02 09:06:06 +11:00
Thomas Sewell 6fa0909124 Partial progress on using array assertions. 2015-12-02 09:05:04 +11:00
Matthew Fernandez d9154d00af crefine: Remove a find_theorems invocation. 2015-11-25 10:29:22 +11:00
Joel Beeren 457a55a831 add arch_tcb object to C, rename aep -> ntfn 2015-11-20 16:02:13 +11:00
Thomas Sewell 7c3a06a8d7 Minor adjustments caused by Strengthen changes. 2015-10-29 11:27:54 +11:00
Rafal Kolanski c1eb235105 Merge 'verification/master' into priority-bitmap
Green build except for:
CParserTest (WTF Duplicate fact declaration "dc_20081211.dc_20081211.test_modifies")
AutoCorresSEL4 (waiting on result)

There is still a carefully managed sorry in Schedule_R, waiting on the C
parser FNSPEC+DONT_TRANSLATE fix.
2015-10-21 06:19:20 +11:00
Rafal Kolanski 930a2ff179 priority-bitmap: Update Haskell->C refinement
(modulo clz_spec locale problem)
2015-10-20 23:52:07 +11:00
Joel Beeren d0693fc7d5 fix CRefine after libseL4 NotificationObject terminology update 2015-10-14 14:00:27 +11:00
Ramana Kumar 0fb88ea01c Merge branch 'master' into aep-merge
This commit should at least remove merge conflict markers, and the idea
is that at least refine, crefine, drefine, and infoflow (with sorrys)
build. Subsequent commits may be required to fix build issues that I
have not picked up.
2015-09-10 17:06:45 +10:00
Ramana Kumar d88a931ec7 history squashed patch for aep-binding 2015-09-02 15:43:39 +10:00
Thomas Sewell af86632985 Fix remaining sorries in crefine. 2015-07-16 14:44:56 +10:00
Thomas Sewell e9180d5cb5 Repair refine/crefine for 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
Gerwin Klein eea646c84a crefine: 2015 update up to Tcb_C 2015-05-18 09:11:43 +10:00
Gerwin Klein 12fa86863a fewer warnings 2015-05-16 19:52:49 +10:00
David Greenaway 03b1952aaa crefine: Port CRefine to Isabelle 2014. 2014-09-11 16:57:59 +10:00
Thomas Sewell 9b01fada15 Refine working. 2014-08-11 18:51:04 +10:00
Thomas Sewell fc6e57716a Proof updates, working as far as AInvs. 2014-08-11 14:50:56 +10:00
Gerwin Klein 154da63715 remove old levity and taint-mode comments 2014-07-22 18:10:28 +02:00
Gerwin Klein 50dda7708c comment cleanup 2014-07-22 18:10:20 +02:00
Gerwin Klein 2a03e81df4 Import release snapshot. 2014-07-14 21:32:44 +02:00