Commit Graph

424 Commits

Author SHA1 Message Date
Joel Beeren ae5d190220 x64: refine: CNodeInv_R done 2017-04-12 11:20:48 +10:00
Joel Beeren ac7232326c x64: refine: Interrupt_R done 2017-04-11 18:48:40 +10:00
Joel Beeren 0d5a0e42cc x64: refine: finished Ipc_R 2017-04-11 11:42:07 +10:00
Matthew Brecknell 5788ada1eb x64 refine: fix Retype_R
Also:
- Design spec and haskell invariants fixes.
- Moves corresK rules for mapM and mapM_x into Corres_Method.
2017-04-11 10:19:21 +10:00
Joel Beeren b331932786 x64: fix Finalise_R 2017-04-10 15:35:18 +10:00
Matthew Brecknell f86b7b078e x64 refine: fix InterruptAcc_R 2017-04-07 18:03:03 +10:00
Matthew Brecknell c2aba18e1d ainvs x64: replace a conditional simp rule lookup_empty_refl
This was causing simplifier loops in some places, and slow-downs in
others.
2017-04-07 18:01:49 +10:00
Joel Beeren 1e5fe128fd x64: refine: fixed IpcCancel_R 2017-04-07 16:43:50 +10:00
Joel Beeren 72cd56340f x64: refine: fix Schedule_R 2017-04-07 16:05:02 +10:00
Joel Beeren a6807f9fe6 x64: refine: adjust setCurrentCR3 et al after rename 2017-04-07 16:05:02 +10:00
Matthew Brecknell ac0a55496c x64: Retype_R checking with sorry proofs 2017-04-07 11:38:41 +10:00
Joel Beeren 25ea0a9422 x64: refine: VSpace_R now processes with correct sorries 2017-04-06 14:47:49 +10:00
Joel Beeren 431b134b19 x64: refine: remove valid_pde_mappings' for the moment 2017-04-06 14:47:26 +10:00
Joel Beeren 5c574a6da4 x64: refine: perform vspace functions done with a few sorries 2017-04-06 11:42:58 +10:00
Joel Beeren 83b2f30c53 x64: progress in VSpace_R 2017-04-04 17:33:35 +10:00
Joel Beeren 53e0f5e476 x64: refine: update group lemma 2017-04-03 17:48:15 +10:00
Joel Beeren 0c011df0ef x64: refine: CSpace_R, TcbAcc_R done 2017-03-31 16:58:51 +11:00
Joel Beeren 1768779b90 x64: refine: update valid_irq_node 2017-03-31 16:58:31 +11:00
Joel Beeren 94ba60b07c x64: fixed sorries in CSpace1_R 2017-03-31 16:57:17 +11:00
Joel Beeren 7827c2fc73 x64: CSpace1_R now processes with a few minor sorries 2017-03-30 13:13:45 +11:00
Matthew Brecknell 659088cc13 x64: merge master 2017-03-29 20:22:12 +11:00
Joel Beeren aaa9d19ed5 x64: progress in CSpace1_R.thy 2017-03-29 18:28:14 +11:00
Joel Beeren c0a998140d x64: refine: CSpace_I now builds, updated for new specs 2017-03-29 17:23:25 +11:00
Daniel Matichuk df7693b687 refinement refactor: up to resolve_address_bits
Proofs have been refactored to use new corres methods, including
marking rules with the [corres] attribute so they are automatically
applied.

VER-737
2017-03-28 22:37:34 +11:00
Joel Beeren 03e25952e3 x64: progress in CSpace_I 2017-03-23 16:48:39 +11:00
Joel Beeren e6fcfaf476 x64: refine: ArchAcc_R done 2017-03-23 15:35:02 +11:00
Joel Beeren 62fb7c8ae8 x64: refine: s/find_pd_for_asid/find_vspace_for_asid/g 2017-03-23 15:34:52 +11:00
Joel Beeren 263ebe904a x64: s/ARM/X64/g proof/refine/X64/*.thy 2017-03-22 18:06:52 +11:00
Joel Beeren 72f6b33659 x64: progress in ArchAcc_R 2017-03-22 18:06:21 +11:00
Joel Beeren bdbaef2e64 x64: KHeap_R done 2017-03-21 17:06:33 +11:00
Joel Beeren e4c5679050 x64: get StateRelation, Invariants_H building
This will now allow sorrying of proofs in refine to aid parallelism as
we proceed.

Note: the invariants are in no way complete and the aim should be to
update them as required - allowing people to start working on refine
proofs without the high initial cost of fixing/writing all of the
invariants.
2017-03-21 15:09:37 +11:00
Gerwin Klein 4620f7622f refine ARM: minor cleanup 2017-03-17 15:14:41 +11:00
Joel Beeren 16ec027469 x64: progress in Invariants_H 2017-03-17 10:22:29 +11:00
Miki Tanaka 7ad3ef3b3e wp: update the proofs for the new wp/wpc/wpsimp 2017-03-16 19:39:11 +11:00
Joel Beeren a0eb3c6f23 x64: add refine files, copied from ARM 2017-03-14 13:36:27 +11:00
Matthew Brecknell 6ce6c97397 arch_split: DetSchedDomainTime_AI, DetSchedSchedule_AI for ARM 2017-03-09 12:10:44 +11:00
Matthew Brecknell c0c52700fb trivial: rename split_if to if_split following Isabelle2016-1 2017-03-09 11:59:33 +11:00
Gerwin Klein 99c7dd8a04 cleanup: remove old wp_cleanup comments 2017-03-03 09:01:28 +11:00
Gerwin Klein 8a7d450f3a ainvs + refine: remove hv_inv_ex
The lemma was convenient, but is subsumed by others. It is not true on
ARM_HYP.
2017-03-02 10:26:10 +11:00
Miki Tanaka 2699254382 Refine: updates for Hypervisor stub 2017-02-22 15:26:49 +11:00
Miki Tanaka 3db5dd778d Refine fix for prepare_thread_delete 2017-02-20 09:23:55 +11:00
Daniel Matichuk 2ac4fa3509 corres_method: use corres method by default 2017-02-15 15:00:23 +11:00
Gerwin Klein 520921351a provide TCB argument for sanitiseRegister
Other platforms such as arm-hyp will need to look into additional TCB state
such as VCPU in sanitiseRegister. This commit provides the scaffolding for
that.
2017-02-12 12:54:42 +11:00
Rafal Kolanski 7657681fca move refine/* to refine/ARM/*, parametrise over $L4V_ARCH 2017-01-30 12:22:22 +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 08d8a8f2fa Isabelle2016-1: replace 'unfolded' attr with 'simplified' where the former now loops 2017-01-05 14:27:04 +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 aadc5125ba Isabelle2016-1: follow Isabelle's choice of meta-forall bindings
Fix some proofs that were broken because Isabelle chose different
names for meta-forall-bound variables.
2017-01-05 14:25:18 +11: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
Alejandro Gomez-Londono 5fcb3c3197 Refine: Updating refine for tcb_arch reserved_irq and arch_fault changes
* Changes to StateRelation.thy, most notably the addition of
  arch_tcb_relation and arch_fault_map to acount for the new
  arch_tcb and arch_fault types

* On ADT_H ArchFault_Map and ArchTcbMap were added to account for
  (yet again) the new arch_tcb and arch_fault types

* Also irq_state_map and IRQStateMap were extended to support the new
  IRQReserved

* Everything else was mostly unfolding stuff and
  (tcb_arch -> tcb_context) rearrangement

  tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:55 +11:00
Xin,Gao d7450607a8 SELFOUR-553: rebase and fix styles and comments 2016-11-21 20:47:15 +11:00
Miki Tanaka a2d707d17e SELFOUR-553: update rpidrurw in TCBConfigure for simpler Infoflow proofs. 2016-11-18 16:27:26 +11:00
Miki Tanaka f8f88c6952 SELFOUR-553: Change Spec according to C code and fix ASpec and AInvs 2016-11-18 16:19:14 +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
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
Ramana Kumar c1c636a24f Simplify obj_bits to not check well_formed_cnode_n 2016-11-11 16:24:37 +11:00
Rafal Kolanski ff7ca60df7 ADT: add kernel entry/exit constraints on domain time left
These changes to the automatons are required by:
  SELFOUR-242: invert bitfield scheduler and optimise fast path

Details:

When we enter the kernel, the domain time left (ksDomainTime) is never zero.
If we entered on a timer interrupt, we may decrement it to zero before the
scheduler runs. If we do so, we set the scheduler state to choose_new_thread.

When choosing a new thread, the scheduler switches to a new domain if the
present one is required, and sets the new domain time left from domain_list
(ksDomSchedule).

When entering the kernel on a non-interrupt event, we never touch the domain
time left, which trivially preserves the new constraints.

To prove these, we had to ban a transition from kernel entry to kernel being
preempted when handling an interrupt event in InfoFlow. This is fine, as by
design handling interrupts is not meant to be preempted by interrupts.
2016-11-11 06:01:30 +11:00
Thomas Sewell f1d546db85 SELFOUR-444: Fix for rebase. 2016-11-02 11:19:10 +11:00
Thomas Sewell dcd7fd8c17 SELFOUR-444: Refine proof with ghost invariant. 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
Thomas Sewell 74adb7a283 SELFOUR-444: Avoid unnecessary cache clears.
Adjust both specs and propagate the changes.
2016-11-02 11:19:09 +11:00
Thomas Sewell 7ebefa69ab SELFOUR-444: Work on untyped zero invariant.
The invariant just proves that the ghost field is up to date.
2016-11-02 11:19:09 +11:00
Thomas Sewell d765a64b81 SELFOUR-444: Haskell implementation, begin refine.
First attempt at a haskell implementation of preemptible retyping
and the refinement proof to abstract.
2016-11-02 11:19:08 +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
Joel Beeren b352769016 SELFOUR-276: Prove refinement to Haskell for MCP
Also includes fixes to specs and invariants, and initial progress
towards C refinement.

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 8f3a4dee31 SELFOUR-421: merge with master, fix wholesystem proofs 2016-09-22 19:23:19 +10:00
Xin,Gao 113315d9a6 SELFOUR-421: merge and fix up to ArmConfidentiality proof 2016-09-22 19:21:56 +10:00
Xin,Gao 252ce8df4c SELFOUR-421: infoflow and infoflow_c builds 2016-09-22 19:11:37 +10:00
Xin,Gao 328846ee1a SELFOUR-421: crefine builds 2016-09-22 19:11:37 +10:00
Xin,Gao ba03caf644 SELFOUR-421: commit before change abstract again 2016-09-22 19:11:37 +10:00
Xin,Gao 7784e80940 SELFOUR-421: fix refine 2016-09-22 19:11:36 +10:00
Xin,Gao c3be923ca0 SELFOUR-421: a defend version before wild changes 2016-09-22 19:11:36 +10:00
Joel Beeren 765d8aa88e SELFOUR-421: fixed Refine after merge with master 2016-09-22 19:11:36 +10:00
Joel Beeren 9617e22ce6 SELFOUR-421: random uncommitted stuff before merge 2016-09-22 19:11:36 +10:00
Joel Beeren df877769fc SELFOUR-421: refine done 2016-09-22 19:11:36 +10:00
Joel Beeren 3c223b42fe SELFOUR-421: AInvs done, no added invariants yet 2016-09-22 19:11:29 +10:00
Thomas Sewell 9a1ec71a2d Refactor of crunch.
Substantial adjustments to crunch. Main user changes are:
  - 'lift' and 'unfold' mechanisms replaced by more general 'rule'.
  - some more 'ignores' standardised.
  - crunch has a more principled overall design:
    + discover crunch rule
      * provided or by definition extraction
    + recurse according to rule
    + prove goal based on rule, recursive discoveries, standard tactic
      * wp/simp adjustments tweak tactic
2016-08-24 15:53:53 +10:00
Matthew Brecknell 1013e959c1 arch_split: give some vspace concepts more generic names
In particular rename "pd" to "vspace", when the pd represents
an address space.
2016-08-03 14:46:48 +10:00
Miki Tanaka eb7f7b1564 arch-split: Tcb_AI.thy done 2016-07-07 13:57:16 +10:00
Matthew Brecknell b9313f6d11 arch_split: invariants: tidied 2016-06-15 10:15:26 +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
Japheth Lim ecbb860532 autocorres-crefine: specialise corres_no_failI for compatibility with Refine
The generic rule is now named corres_no_failI_base.
2016-05-18 15:28:43 +10:00
Gerwin Klein 322f1023f5 word_lib: adjust theory dependencies 2016-05-16 21:11:40 +10:00
Gerwin Klein 445efb7c29 lib: closure for Word_Lib and own session 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
Japheth Lim 0f0f731ab7 Merge branch 'master' of ssh://bitbucket.keg.ertos.in.nicta.com.au:7999/SEL4/l4v into autocorres-seL4
This is to prepare for merging back into master.

Conflicts:
	proof/crefine/Refine_C.thy
2016-05-11 15:08:22 +10:00
Matthew Brecknell 60afdc1288 trivial: fixups including some licence headers 2016-05-09 13:27:15 +10:00
Matthew Brecknell b16496e7cf arch_split: InfoFlowC checking 2016-05-06 13:15:37 +10:00
Matthew Brecknell 56b226a608 arch_split: CRefine: use requalify instead of shadow 2016-05-06 08:59:33 +10:00
Daniel Matichuk 9ceed1eb12 arch_split: fix proofs after removing shadow and unqualify commands and adding fix for crunch. Checks up to DPolicy. 2016-05-04 15:14:41 +10:00
Matthew Brecknell ec399ad38e arch_split: CRefine checking 2016-05-04 15:07:51 +10:00
Matthew Brecknell 33b4848061 arch_split: Refine: fixup some qualified references 2016-05-02 16:11:13 +10:00
Matthew Brecknell a2135ca8ce arch_split: Refine checking, including Orphanage 2016-04-30 16:25:20 +10:00
Matthew Brecknell e8c5b916ef arch_split: Refine checking, except Orphanage 2016-04-29 18:15:54 +10:00
Matthew Brecknell e0ecdf2281 arch_split: Refine checking up to ADT_H 2016-04-29 15:06:32 +10:00
Matthew Brecknell 18b77d4bdf arch_split: Refine checking up to CNodeInv_R 2016-04-29 09:47:59 +10:00
Daniel Matichuk 94f7004f07 arch_split: Refine checking up to end of Finalise_R 2016-04-28 17:16:49 +10:00
Matthew Brecknell 0c3a12771d arch_split: merge master 2016-04-28 14:36:43 +10:00
Daniel Matichuk 1d20b393c0 arch_split: replaced sublocale with global_naming 2016-04-27 14:32:38 +10:00
Matthew Brecknell 4e6369f86d arch_split: invariants: Finalise_AI checking 2016-04-15 15:11:32 +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
Sophie Taylor d7fd88727a SELFOUR-420: Verification of maxIRQ check in handle_interrupt. 2016-03-17 11:20:52 +11:00
Miki Tanaka 6f6c58168c SELFOUR-56: Remove diminish rights from IPC 2016-02-24 13:24:10 +11:00
Matthew Brecknell 4f7ac1a975 trivial: remove some comments and debug trace 2016-02-22 10:55:21 +11:00
Matthew Brecknell 84d2889d45 Isabelle2016: merge master into 2016 2016-02-19 16:17:26 +11:00
Xin,Gao 1aed16085f l4v-sabre: move a few word lemmas to WordLemmaBucket and fix styles of some proofs 2016-02-17 11:18:03 +11:00
Gao Xin 0d260252ff l4v-sabre: rebase and fix proofs to infoflow 2016-02-17 11:18:02 +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
Gao Xin c45f88745c l4v-sabre: minor fix on dmo_ackInterrupt and foldME 2016-02-17 11:18:02 +11:00
Gao Xin bee4ba0052 l4v-sabre: fix refine 2016-02-17 11:18:02 +11:00
Matthew Brecknell c65e290a8b Isabelle2016: merge master into 2016 2016-02-16 12:52:24 +11:00
Joel Beeren 1d0366ac5e msi: Restructure IOAPIC, MSI interrupts for x86, fix up ARM proofs for new API 2016-02-02 15:57:28 +11:00
Japheth Lim b9c23eaa74 autocorres-crefine: update another corres_UL that snuck in before rebasing. 2016-01-28 14:30:54 +11:00
Miki Tanaka d11f24a3a1 Refine finished for RC1 2016-01-23 22:51:48 +11:00
Miki Tanaka 674d476d83 option name changed from RC0 2016-01-23 00:34:41 +11:00
Miki Tanaka b43f41abfd A few more changes.
inj_on_image_set_diff: resolved the injection map lemma application issue in CSpace1_R.thy, CSpace_R.thy
Pair_fst_snd_eq chaged to prod_eq_iff in TcbAcc_R.thy, Schedule_R.thy, Retype_R.thy
TrueI removed in Schedule_R.thy
not_leE changed to not_le_imp_less in Retype_R.thy
2016-01-22 15:10:42 +11:00
Miki Tanaka 83574af10e Invariants_H.thy: inductive definition needs explicit declaration to make xxx_def available
CSpace_I.thy: locale qualifier default changed
2016-01-22 15:10:42 +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 c282969c54 Merge remote-tracking branch 'verification/master' into arch_split 2016-01-21 10:22:48 +11:00
Daniel Matichuk a34de66b9f arch_split: fix crefine up to Interrupt_C 2016-01-20 14:42:36 +11:00
Daniel Matichuk a8b7ee4ffe repairing refine (simplified attribute now solves True) 2016-01-18 16:09:30 +11:00
Miki Tanaka b7376a56e2 Isabelle 2016 update: minor fixes 2016-01-15 16:03:30 +11:00
Joel Beeren efb4c61816 archirq: Remove redundant invocation, renamed
arch_decode_interrupt_control.
2016-01-14 17:50:33 +11:00
Daniel Matichuk ca808130e6 repair ARM proofs up to Refine after factoring out architecture 2016-01-13 12:02:12 +11:00
Thomas Sewell 043a69c81b Fix Orphanage from array changes, refactor.
Some generalisation is done in finaliseSlot_invs'' to avoid
duplicating it in Orphanage and PageTableDuplicates.

Finally cleanup in haskell translation.
2015-12-02 09:15:32 +11:00
Thomas Sewell 860f8f2225 Fixes for merge/rebase with mainline. 2015-12-02 09:15:26 +11:00
Thomas Sewell 375b526b0c Finally done with array assertions. 2015-12-02 09:08:27 +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 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
Gerwin Klein 7bc4236077 remove accidentally committed file 2015-11-25 09:54:30 +13:00
Gerwin Klein ac632c5aaa Wait -> Recv: update proofs 2015-11-20 16:02:14 +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 d51402a5a2 Merge remote-tracking branch 'verification/master' into priority-bitmap
(seL4_NBWait)
2015-10-21 16:23:01 +11:00
Joel Beeren e403eb8f0a poll: added non blocking sync wait 2015-10-21 14:24:49 +11:00
Joel Beeren d6f7579be7 poll: Added new syscall for polling async endpoints (non-blocking wait) 2015-10-21 14:24:49 +11:00
Rafal Kolanski 6f8cdae201 priority-bitmap: clean up Refine (i.e. "FIXME RAF") 2015-10-21 13:38:29 +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
Rafal Kolanski 7860bd4351 priority-bitmap: move word_log2/clz to WordLemmaBucket
Resolves some FIXMEs in Schedule_R.
2015-10-20 23:50:37 +11:00
Rafal Kolanski 2a9d3022f2 priority-bitmap: Update abstract->Haskell refinement
Added word_log2 and word_clz (inline for now, will migrate them out to
lib later).

Proved most important properties of word_log2 and some basic
count leading zeros properties (word_clz). The former were painful.

Thanks to Thomas, we have a nice tactic for dealing with complicated
obj_at' predicates in conclusion: normalise_obj_at'
2015-10-20 23:40:44 +11:00
Joel Beeren 038891ac7b aep-binding: more cleanup 2015-10-07 14:57:55 +11:00
Joel Beeren f117c99903 aep-binding: updated AInvs, Access, Refine for new decodeBindAEP 2015-09-15 16:31:14 +10: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
Joel Beeren 3372cd32a8 SELFOUR-220: When calling handleWait, only delete the
TCB's ReplyCap when actually waiting on a synchronous
endpoint.
2015-07-23 14:45:17 +10:00
Thomas Sewell b5f796184a Repair spec/refine, I think. 2015-07-15 17:25:47 +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 cfec9ea0db Merge branch 'master' into 2015 2015-05-28 11:45:13 +10:00
Joel Beeren 002cf370bb Updated proof with new fastpath changes removing setCurrentASID and armv_contextSwitch_fp 2015-05-28 11:30:22 +10:00
Gerwin Klein 12fa86863a fewer warnings 2015-05-16 19:52:49 +10:00
Gerwin Klein 0c67e0bfa1 2015 update for Refine 2015-05-12 17:17:31 +02:00
Gerwin Klein 7e7d39c24e enable XN in abstract spec; update AInvs and Refine 2014-11-28 08:58:57 +11:00
Gerwin Klein dfa9c09892 abstract Haskell init parameters into constants 2014-11-06 18:48:36 +11: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
Joel Beeren b3e2eb1f9d ioapic: finished up to InfoFlowC 2014-08-28 15:56:26 +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 ded3a4a86f option_map_def -> map_option_case for 2014-RC0 2014-08-09 21:09:37 +10: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
David Greenaway 0fb7a8084d misc: Proofing and formatting of README.md files.
Attempt to improve readability of the files when viewed as plain ASCII;
proof-read and fix minor issues.
2014-07-28 13:15:48 +10:00
Toby Murray 93375ba96d Initial README.md files for proof/ 2014-07-24 13:31:57 +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 9d9a325032 Updates for getpaddr system call (by Joel Beeren) 2014-07-18 17:21:34 +02: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