Commit Graph

31 Commits

Author SHA1 Message Date
Gerwin Klein 625c6e359d
lib+proof: eliminate hoare_ex_wp
duplicate of hoare_vcg_ex_lift

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-01-25 11:48:38 +11:00
Gerwin Klein 9e5a7583fc isabelle-2021: update SysInit
Signed-off-by: Gerwin Klein <kleing@unsw.edu.au>
2021-09-30 16:53:17 +10:00
Gerwin Klein a424d55e3e licenses: convert license tags to SPDX 2020-03-13 14:38:24 +08:00
Michael McInerney c13432b0c4 misc updates for Isabelle2019 2019-06-14 11:41:20 +10:00
Michael Sproul c44fd87594 capdl: remove redundant definition `opt_object`
A lot of the proofs in SysInit and DRefine previously had to unfold opt_object,
which was really just an alias for cdl_objects with the arguments in the
opposite order! This commit deletes opt_object in favour of using cdl_objects
directly, which should slightly reduce the burden of unfolding.
2019-02-28 14:34:01 +11:00
Callum Bannister bba5bfd905 lib + sysinit: whitespace cleanup; renamed lookup_obj 2019-02-19 15:43:10 +11:00
Callum Bannister 2eeecb417c sys-init: Added rule to transform sep_map_set_conj using precise predicates 2019-02-19 15:42:55 +11:00
Callum Bannister 8c683ce6fa lib: Fixed guess_exI to filter out multiple matches, added guess_spec 2019-02-19 15:42:49 +11:00
Callum Bannister dacc97c5d7 lib: sep_tactics cleanup; session cleanup + organisation 2019-02-19 15:38:37 +11:00
Callum Bannister 4c79675879 sysinit: implement support for shared frames
Co-authored-by: Michael Sproul <michael.sproul@data61.csiro.au>
2019-02-19 14:47:00 +11:00
Japheth Lim 5516fea8a0 capDL-api, sys-init: fix for GrantReply (SELFOUR-6)
The badge condition for the CNode_Mint lemmas was incorrect and ought
to be untangled. This commit patches up the specs, but with ad-hoc
proof fixes.
2018-12-11 14:54:42 +11:00
Callum Bannister 751480007b lib+sysinit: add extended separation algebra and forward reasoning tactics
Added Extended Separation Algebra, which contains septraction and
separating coimplication.
Added Sep_Forward which contains tactics for reasoning forwards in
separation logic, updated sep_cancel.
Updated SysInit proofs.
2018-09-18 12:01:52 +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 652cbb966e Initial proof updates for combinator changes. 2018-03-16 14:53:22 +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 511c6b2d3a Isabelle2016-1: rename free variables to avoid capture 2017-01-05 14:24:36 +11:00
Matthew Brecknell 41d4aa4f1d Isabelle2016-1: update references to renamed constants and facts 2017-01-05 14:23:05 +11:00
Xin,Gao 8d4a8eb238 SELFOUR-421: fix coding style 2016-09-22 19:23:28 +10:00
Xin,Gao 8f3a4dee31 SELFOUR-421: merge with master, fix wholesystem proofs 2016-09-22 19:23:19 +10:00
Matthew Brecknell 0e5ffd1ea0 arch_split: requalify abstract theories 2016-04-27 18:46:16 +10:00
Matthew Brecknell 57c29692d0 arch_split: SysInitExamples checking 2016-04-26 09:27:46 +10:00
Joel Beeren 457a55a831 add arch_tcb object to C, rename aep -> ntfn 2015-11-20 16:02:13 +11:00
David Greenaway 0c004d2a93 Merge branch 'master' into 'isabelle-2014'.
Conflicts:
	proof/drefine/Arch_DR.thy
	proof/drefine/Finalise_DR.thy
	proof/drefine/StateTranslation_D.thy
	sys-init/DuplicateCaps_SI.thy
	sys-init/Proof_SI.thy
	tools/autocorres/tests/examples/SchorrWaite.thy
2014-09-23 14:31:33 +10:00
Andrew Boyton ea58753cd7 Merge branch 'cdl_page_map_cancel'
Merge in the setting of registers and the starting of threads in the system initialser.
2014-09-18 17:21:17 +10:00
David Greenaway cf0d1abce6 Merge 'master' into 'isabelle-2014'.
Conflicts:
	proof/crefine/Fastpath_C.thy
	proof/drefine/KHeap_DR.thy
	proof/infoflow/Noninterference.thy
	spec/design/version
	sys-init/DuplicateCaps_SI.thy
	sys-init/InitTCB_SI.thy
	sys-init/Proof_SI.thy
	tools/asmrefine/SimplExport.thy
	tools/autocorres/tests/examples/SchorrWaite.thy
2014-09-17 14:21:13 +10:00
Andrew Boyton 97166be5a5 sys-init: Update sys-init and separation logic tactics for Isabelle 2014. 2014-09-12 17:48:39 +10:00
Gao Xin 5015f53d95 fix seL4_TCB_WriteRegisters 2014-09-10 17:30:35 +10:00
Andrew Boyton 7167ea42ac CapDL: Made IRQ Nodes a new object type, not a small CNode.
IRQ Nodes are now their own object type in capDL. This makes it much easier
to distinguish between "real" CNodes and IRQ Nodes.

Updated:
 * the capDL refinement,
 * the access proofs, and
 * the system initialiser.
2014-09-09 14:07:50 +10:00
Andrew Boyton acf0abe16a Cleanup of a number of definitions of the separation algebra for capDL.
* The definitions of the separation "arrows" is slightly nicer and more consistent.
  - We have a nicer correspondence between sep_map_c and sep_map_s.
  - sep_map_irq now specifies exactly what the IRQ table contains
    (that it *only* has one entry, not that it contains at least that entry).
  - Nicer LaTeX output for the arrows.

* A number of minor renaming of constants and types.
  - cdl_component => cdl_component_id
  - sep_entity => cdl_component
  - state_sep_projection => sep_state_projection
  - obj_to_sep_state => object_to_sep_state

* Removed a few unused lemmas.
2014-07-22 14:37:37 +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