Rafal Kolanski
87a3d9592d
cspec/crefine: readme: document significance of L4V_ARCH
...
tags: [NO_PROOF]
2017-03-31 16:13:42 +11:00
Rafal Kolanski
7e13fb9e91
cspec: move to ARM subdirectory
...
Configure to build with L4V_ARCH=ARM
2017-03-30 18:20:24 +11:00
Joel Beeren
1e8228700b
x64: abstract: fixup arch_same_region_as for IOPorts
2017-03-30 13:09:40 +11:00
Joel Beeren
5466ae1e9e
x64: design: translate spec
2017-03-29 18:28:14 +11:00
Joel Beeren
fb177b7303
x64: fix up updateCapData for cnodes
2017-03-29 18:28:14 +11:00
Joel Beeren
97b811c183
x64: design: run haskell translator
2017-03-29 17:23:25 +11:00
Joel Beeren
d943530233
x64: haskell: miscellaneous updates
...
* change updateCapData to do nothing for IOPorts
* update sameObjectAs for IOPorts
* add device condition for sameObjectAs for Pages
2017-03-29 17:23:25 +11:00
Joel Beeren
df94ae6fad
x64: aspec/ainvs: miscellaneous updates
...
* make update_cap_data do nothing for IOPorts
* return same_aobject_as to previous definition for IOPorts
* change cap_master_cap for IOPorts to be the identity
2017-03-29 17:23:25 +11:00
Matthew Brecknell
f26ba5cebd
arch_split: make cte_level_bits_def work with existing proofs
...
Many generic proofs make use of cte_level_bits_def. Although the
definition is architecture specific, the proofs work for any reasonable
value of cte_level_bits, so it's fine to expose the definition to
generic proofs.
2017-03-29 11:45:13 +11:00
Matthew Brecknell
6f3efc504a
arch_split x64 arm: make endpoint_bits and ntfn_bits arch constants
2017-03-27 19:07:42 +11:00
Matthew Brecknell
bb92e92f52
arch_split x64 arm: make cte_level_bits an arch constant
2017-03-27 19:07:28 +11:00
Joel Beeren
b9e7e99e8e
x64: haskell: remove VMWriteOnly
2017-03-23 16:48:20 +11:00
Joel Beeren
178b95a6d3
x64: haskell: fix broken caseconvs; use generic ptTranslationBits
2017-03-23 15:34:52 +11:00
Joel Beeren
d564c80be1
x64: abstract: tweak spec to match C code
2017-03-23 15:34:43 +11:00
Joel Beeren
981e05d5f7
x64: abstract: remove spurious VMPML4E from vm_map_type
2017-03-23 15:34:30 +11:00
Joel Beeren
28c13ef778
x64: abstract: update error bits used in lookup_pt_slot et al
2017-03-22 18:05:00 +11:00
Joel Beeren
004feffc4c
x64: haskell: add ptShiftBits et al
2017-03-22 18:04:36 +11:00
Joel Beeren
903b2ae87a
x64: haskell: update haskell spec
...
* use new vmmap_type from spec/machine
* add x64KSKernelVSpace to arch state
* retranslate spec
2017-03-21 15:09:37 +11:00
Joel Beeren
49e12ef7dc
x64: change cte_level_bits, obj_bits (Endpoint; Notification) to 5
...
rather than 4.
This is true on all 64-bit platforms as the size of these objects is 4
words (4*8 = 32 = 2^5). However, this breaks the 32-bit ARM proofs that
rely on these values being 4 - see jira issue VER-725.
2017-03-21 15:09:37 +11:00
Joel Beeren
34090a37a2
x64: spec: use machine_word rather than 32 word for deterministic extended state fields
2017-03-21 15:09:37 +11:00
Joel Beeren
1a12926724
x64: use generic VMMapType from haskell rather than redefine in abstract
2017-03-21 15:09:37 +11:00
Matthew Brecknell
af0060bf7e
x64: fix ArchKernelInit_AI
...
Includes a change to valid_global_vspace_mappings invariant, to
canonicalise virtual addresses while traversing page tables.
2017-03-21 14:42:12 +11:00
Joel Beeren
f846fd896a
x64: design: translated haskell spec now builds
2017-03-16 14:19:40 +11:00
Joel Beeren
05150477b9
x64: haskell: updated most of haskell spec for new machine functions
2017-03-16 14:19:40 +11:00
Joel Beeren
532995922b
x64: got haskell translator running on existing haskell kernel
2017-03-14 17:59:08 +11:00
Joel Beeren
637f13b994
x64: fix haskell Makefile, get haskell building without VT-d stuff
2017-03-14 17:59:08 +11:00
Joel Beeren
421c42e935
x64: add HypFault to machine skel
2017-03-14 13:56:18 +11:00
Joel Beeren
15f32f4dce
x64: ASpec builds after merge for ARM, X64
2017-03-14 13:16:14 +11:00
Joel Beeren
95d1671940
Merge remote-tracking branch 'verification/master' into x64-split
...
Conflicts:
lib/LemmaBucket.thy
lib/NonDetMonadLemmaBucket.thy
lib/Word_Lib/Word_Lemmas.thy
lib/X64/WordSetup.thy
proof/invariant-abstract/ARM/ArchDetype_AI.thy
proof/invariant-abstract/ARM/ArchInvariants_AI.thy
proof/invariant-abstract/BCorres_AI.thy
proof/invariant-abstract/CSpace_AI.thy
proof/invariant-abstract/DetSchedSchedule_AI.thy
proof/invariant-abstract/Interrupt_AI.thy
proof/invariant-abstract/IpcCancel_AI.thy
proof/invariant-abstract/Syscall_AI.thy
proof/invariant-abstract/Untyped_AI.thy
proof/refine/ARM/Include.thy
spec/abstract/ARM/ArchTcb_A.thy
spec/abstract/CSpace_A.thy
spec/abstract/Tcb_A.thy
spec/design/ARM/ArchIntermediate_H.thy
spec/design/X64/ArchInterruptDecls_H.thy
spec/haskell/Makefile
spec/machine/MachineExports.thy
tools/c-parser/.gitignore
tools/c-parser/standalone-parser/Makefile
tools/c-parser/testfiles/ARM/imports/MachineWords.thy
tools/c-parser/testfiles/X64/imports/MachineWords.thy
tools/haskell-translator/caseconvs
2017-03-10 19:35:39 +11:00
Joel Beeren
89b9e3bda4
x64: fixed up ArchCNodeInv_AI
2017-03-09 11:09:46 +11:00
Rafal Kolanski
ea771a8f7c
arm-hyp: configure kernel Makefile for L4V_ARCH=ARM_HYP
...
Set as required for TK1 platform.
2017-03-06 17:16:28 +11:00
Gerwin Klein
c3d179cd28
aspec: standard file access rights
2017-03-04 10:32:12 +11:00
Matthew Brecknell
237fb11012
x64: fix ArchArch_AI
...
Also includes some corrections to the abstract specification, and minor
improvements to some existing proofs.
2017-03-01 12:11:17 +11:00
Joel Beeren
81b3e7808b
licenses: Updated licenses added from x64 backport
...
tags: [NO_PROOF]
2017-02-28 12:26:19 +11:00
Miki Tanaka
5665511d84
capDL spec and DRefine: updates for Hypervisor stub
2017-02-22 15:26:50 +11:00
Miki Tanaka
b2f2034bbc
Bisim / Access / InfoFlow: updates for Hypervisor stub
2017-02-22 15:26:49 +11:00
Miki Tanaka
75b1680d68
abstract: add Hypervisor fault event to ARM
2017-02-22 15:26:49 +11:00
Miki Tanaka
98832f8ccd
execspec: add hypervisor, HypFaultType in skeletons (ARM), generated files
2017-02-22 15:26:46 +11:00
Rafal Kolanski
ce1b60e16e
haskell: add Hypervisor module, add concept of Hypervisor exceptions
...
The kernel gains an entry point for hypervisor exception events, as well
as a way to add arch-specific handlers for these events.
We do this since the hypervisor has its own entry point into the kernel,
and that must be reflected in the top-level kernel entry interface.
For ARM target, which does not have hypervisor support, we add an no-op stub.
2017-02-22 15:26:41 +11:00
Miki Tanaka
c957220996
capDL spec and DRefine for prepare_thread_delete
2017-02-20 09:23:56 +11:00
Miki Tanaka
1ac38269b6
abstract: prepare_thread_delete stub for ARM
...
- defined prepare_thread_delete for finalise_cap
2017-02-20 09:23:55 +11:00
Miki Tanaka
b853647a6d
execspec: fix skeleton for prepareThreadDelete, generated files
2017-02-20 09:23:55 +11:00
Miki Tanaka
185876b89f
haskell: add a stub for prepareThreadDelete
...
this is a function called from finailiseCap to prepare a tcb for deletion
(it does nothing for ARM)
2017-02-20 09:23:55 +11:00
Matthew Brecknell
07b2241e37
x64: fix CR3 check in set_vm_root spec
2017-02-15 19:01:58 +11:00
Matthew Brecknell
cdc4813228
x64: make same_object_as for IOPortCap behave like UntypedCap
2017-02-15 19:01:58 +11:00
Joel Beeren
000b27b5d8
x64: spec: commented out IOSpace invocations
2017-02-15 18:32:52 +11:00
Joel Beeren
5ea1d903ae
x64: spec: fixed definition of same_aobject_as
2017-02-15 14:11:12 +11:00
Joel Beeren
a9bbaeb0b8
x64: ArchIPC_AI now processes, added necessary arch_fault lemmas
2017-02-15 11:50:50 +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
Gerwin Klein
3607dfabbf
haskell/design: remove unused functions
2017-02-12 12:33:05 +11:00
Gerwin Klein
82ab5500a1
abstract: remove two obsolete functions
2017-02-10 22:29:07 +11:00
Xin,Gao
0dbe39edd8
X64: fix perform_asid_pool_invs
2017-02-03 16:25:06 +11:00
Matthew Brecknell
d08ee04e2f
haskell: update documentation for building the Haskell kernel
2017-02-03 16:23:56 +11:00
Joel Beeren
c3cd2e137b
x64: spec: add loop to delete_asid_pool; re-add asid_map updates
2017-02-02 13:30:24 +11:00
Matthew Brecknell
aee13996a6
haskell: use stack to obtain suitable GHC and cabal
2017-02-01 17:31:21 +11:00
Matthew Brecknell
7a8f2b8980
trivial: use absolute paths in haskell .gitignore
2017-02-01 17:13:04 +11:00
Matthew Brecknell
9ac4d1ba06
x64: progress in Detype_AI
...
May need some additional work to ensure compatibility with vspace lookup
generalisation.
2017-02-01 16:22:41 +11:00
Matthew Brecknell
4329c6a6bd
x64: fix endianness of storeWord and loadWord
2017-02-01 16:22:06 +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
f8dadc16f0
x64: fix ArchRetype_AI
...
- Port from ARM to X64:
- Definitions and lemmas relating to copy_global_mappings.
- Device untyped patch.
- Pre-emptible retype patch.
Includes some fixes to ArchVSpace_AI and ArchVSpaceAcc_A.
There is one "sorry" in ArchRetype_AI which is waiting for a refactoring
of ArchAcc_AI and ArchVSpace_AI for simpler proofs concerning vs_lookup,
store_pml4e, etc.
2017-01-25 12:00:14 +11:00
Joel Beeren
b35c50c481
x64: spec: update machine functions, invocations, set_vm_root for new
...
kernel version
2017-01-20 16:18:49 +11:00
Matthew Brecknell
3504b119a4
x64: fix X64 after merge, up to ArchVSpace_AI
2017-01-19 11:12:30 +11:00
Matthew Brecknell
e543bf5501
merge x64-split into local branch
2017-01-18 13:49:51 +11:00
Matthew Brecknell
759a0387ab
merge master into x64-split
...
Primarily concerns wp improvements
2017-01-18 07:49:48 +11:00
Joel Beeren
77a657004d
x64: Interrupt_AI, ArchInterrupt_AI done
2017-01-17 14:04:55 +11:00
Gerwin Klein
3fee2d83b4
cleanup: correct version info
2017-01-15 17:05:52 +01:00
Gerwin Klein
8ac1200329
cleanup: remove accidentally declared const
2017-01-15 17:05:52 +01:00
Matthew Brecknell
abf1db5b51
merge master into x64-split
2017-01-13 17:22:03 +11:00
Matthew Brecknell
c1782fc155
x64: fix ARM build after merge
2017-01-13 11:24:06 +11:00
Matthew Brecknell
a1b5f16ed6
merge x64-split into local branch
2017-01-11 17:22:05 +11:00
Matthew Brecknell
5bdcbe537e
fix ARM build after merge
...
Also:
- move some ARM-specific things out of Tcb_AI
- port changes from ARM to X64, up to beginning of ArchVSpace_AI
2017-01-10 17:09:31 +11:00
Joel Beeren
47f78b30a6
x64: random stuff in BCorres, changed undefined to fail in decode_page_invocation
2017-01-09 17:12:34 +11:00
Joel Beeren
7dce5dd7c4
x64: defined a bunch of machine ops that were previously unspecified
2017-01-05 15:38:06 +11:00
Matthew Brecknell
db13ff19bb
Isabelle2016-1: configure c-parser with faster string comparisons
2017-01-05 14:27:44 +11: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
30122b5d80
Isabelle2016-1: update to new ML API
...
Update references to renamed ML constants; supply default arguments to
functions with additional parameters; etc.
2017-01-05 14:26:14 +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
Matthew Brecknell
0b039a0735
Isabelle2016-1: syntax: use semantic markup instead of "header"
2017-01-05 14:22:24 +11:00
Joel Beeren
a1ab2d90b1
x64: fix up ArchIPC_AI
2016-12-13 10:17:28 +11:00
Joel Beeren
25a6354859
AInvs: remove references to arch specific stuff in Ipc_AI
2016-12-13 10:15:53 +11:00
Matthew Brecknell
73a08160a1
merge master into x64-split
2016-11-30 12:08:32 +11:00
Joel Beeren
b07d971a08
x64: machine: move word_size_bits definition to MachineTypes.
...
Furthermore, create generic library of word lemmas that require
the Arch context to prove, but can be proven with the same proof in
all architectures. These lemmas can then be used safely in generic
theory files. This library is in spec/machine/WordExports.thy
2016-11-25 15:30:36 +11:00
Alejandro Gomez-Londono
b4fe96ee67
CSpec: New import locations
...
types.bf and shared_types.bf were merged and moved to 32/mode/api,
imports in KernelInc_C.thy were updated accordingly
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:55 +11:00
Alejandro Gomez-Londono
ab6b9baebb
ExecSpec: Changes to the haskell to better reflect ASpec
...
* atcbContextGet and atcbContextSet where added (just as in ASpec)
* asUser is now defined in terms of atcbContext{Get,Set}
* arch_tcb is now correctly imported as a datatype not as a type
synonym
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:55 +11:00
Alejandro Gomez-Londono
f9c7c855d0
Haskell: Changes to the haskell to better reflect ASpec
...
* atcbContextGet and atcbContextSet where added (just as in ASpec)
* asUser is now defined in terms of atcbContext{Get,Set}
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:55 +11:00
Miki Tanaka
99bcebda87
ASpec: arch-specific faults + VMFault -> ArchFault + ReservedIRQ
...
* fixing name space for arch_tcb and tcb_context
* arch_fault added
* changing name space for arch_tcb
- as_user, set_mrs, get_mrs, copyRegsToArea, and copyRegsToArea are
moved to the ARM_HYP directory. This breaks the proofs in
refinement, etc., mostly in tcb related files.
* removed a duplicate range check definition
* fixes ARM for arch_tcb
* adding arch_thread_get/set
* add ReserveIRQ
- initInterruptController is not added yet.
* add arch_fault
- arch_fault and related functions are added.
* arch-parametrising arch-specific extra registers
- ArchDefaultExtraRegisters is the common interface that refers to the
arch-specific data (ARMNoExtraRegisters for ARM/ARM_HYP)
* Adding accesors for tcb_context
- Despite the fact that tcb_context has an arch-specific definition,
it is reasonable to assume that some form of tcb_context will be
available in any architecture, thus the need for accesors to handle
updates.
* as_user updated to use tcb_context accesors
* set_mrs and get_mrs updated to use tcb_context accesors
- Several function on ArchTcb_A and ArchTcbAcc_A (both theories where
removed) can be defined in a general context by using the
tcb_context accesors
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:49 +11:00
Miki Tanaka
6dad6a1c75
ExecSpec: arch-specific faults + VMFault -> ArchFault + ReservedIRQ
...
* skeletons, adding new constructs (arch_tcb, arch_fault)
* adjusting skeletons for ReserveIRQ + small change in haskell (ARM)
Changes in: spec/haskell/src/SEL4/Object/Interrupt/ARM.lhs:37:21
Due to "Defined but not used: ‘irq’"
* arch-splitting faults in skeletons (ARM)
* fix arch_tcb and asUser namespace issues in skeletons (ARM)
* checking in current generated files
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:42 +11:00
Rafal Kolanski
c92baf746d
Haskell: arch-specific faults + split VMFault -> ArchFault + ReservedIRQ
...
Hypervisor extensions add extra fault types which are entirely
arch-specific. While the concept of a VM fault exists on all platforms,
these faults are also arch-specific.
This change adds an ArchFault datatype and constructor to the generic
Faults and Failures, and moves VMFault into ArchFault for the ARM
platform.
NOTE: fault indices have changed (generic goes before arch) as per
the changes needed for SELFOUR-413, which is the seL4 C equivalent of
this commit.
* add arch faults and failures to SEL4.cabal
* introduce and handle IRQReserved
On ARM this does nothing, but on other platforms reserved IRQs are
actually used.
* split TCB into ArchTCB (userContext)
* changing ArchFault to make haskell-translator to work
tags: [VER-623][SELFOUR-413]
2016-11-25 13:05:15 +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
Miki Tanaka
9769f73888
changed callKernel to conditionally call hooks
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
Xin,Gao
3b679b0ce3
SELFOUR-444: fix DSpecProofs and SysInit
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
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
6ad456ca03
SELFOUR-444: Adjust Haskell, new ghost data.
...
The new ghost data is saved in the design spec when Untyped caps
are modified and will be used by CRefine.
2016-11-02 11:19:09 +11:00
Thomas Sewell
69f7be9917
SELFOUR-444: Initial updates to capDL spec.
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
Thomas Sewell
f32e2ca0f5
SELFOUR-444: Abstract implementation.
...
Abstract implementation of preemptible retyping.
2016-11-02 11:19:08 +11:00
Joel Beeren
1a6e362598
x64: added more machine definitions
2016-10-26 16:42:50 +11:00
Joel Beeren
b8048726a6
X64: added dummy VMPML4E to vm_page_entry.
...
needs to be reviewed
2016-10-19 10:52:46 +11:00
Joel Beeren
0b4372e98b
x64: Removed unnecessary ASID from PageMap invocation
2016-10-14 16:44:42 +11:00
Matthew Brecknell
991dd30173
x64: port device-untyped from ARM
2016-10-10 13:26:40 +11:00
Matthew Brecknell
aafe4b92ce
x64: port MCP from ARM
2016-10-10 13:24:08 +11:00
Matthew Brecknell
256e241770
merge master into x64
2016-10-06 19:57:55 +11:00
Matthew Brecknell
7989fa4ff1
x64: more progress in ArchVSpace_AI
2016-10-05 18:04:47 +11:00
Joel Beeren
1edc9ced5f
x64: commented out some IOSpace stuff, added machine op definitions.
2016-10-05 12:02:46 +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
Sophie Taylor
20539620f9
SELFOUR-276: Add MCP to specs and invariants
...
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
e00e4c4e64
SELFOUR-421: add device bit in UntypedCap and FrameCap in capdl
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
c3be923ca0
SELFOUR-421: a defend version before wild changes
2016-09-22 19:11:36 +10:00
Joel Beeren
ec57875566
SELFOUR-421: new haskell spec after UserDataDevice 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
78bd770240
SELFOUR-421: retranslate haskell 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
773684bcd1
SELFOUR-421: retranslate haskell for fixed range check
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
Joel Beeren
5e16ec5617
SELFOUR-421: first attempt at abstract spec
2016-09-22 19:11:16 +10:00
Thomas Sewell
4c23410f6c
Haskell translator: can keep type constructors.
...
A skeleton line of the form
\#INCLUDE_SETTINGS keep_constructor=asidpool
now ensures that the asidpool type constructor is actually created in
subsequent #INCLUDE_HASKELL declarations. It turns out this feature was already
available, and already used for asidpools, this change just makes it externally
adjustable.
2016-08-25 15:33:19 +10:00
Matthew Brecknell
7a5f569a10
x64 invariants: extract word-len-specific parts of update_cap_data (CSpace_A)
2016-08-24 13:39:30 +10:00
Matthew Brecknell
5880a317f2
x64 invariants: CSpace_AI checking
...
Includes some changes to the abstract spec:
- replace magic numbers with definitions.
- add missing IOPortCap cases to some definitions.
There is one sorry proof, which I think blast could solve if we
gave it enough time. Will need a more subtle approach.
2016-08-23 07:40:47 +10:00
Matthew Brecknell
5b19e2c284
merge master into x64-split
...
This resurrects the ARM architecture on the x64-split branch.
It also brings X64 up-to-date with progress on arch_split.
2016-08-09 18:58:37 +10:00
Matthew Brecknell
6b6b8786e8
arch_split: move kernel_base and idle_thread_ptr to arch-specific theories
2016-08-03 14:46:48 +10:00
Matthew Brecknell
f9f160ed14
arch_split: replace some fixed word sizes with type aliases
...
Changed some instances of word32 to machine_word, and "10 word" to irq.
Also introduce a type_synonym for "machine_word_len".
2016-08-03 14:46:23 +10:00
Matthew Brecknell
975c21054d
x64: remove "isDevice" flags from Haskell specification
...
We will return these when the device-untyped patch is verified and integrated
with the ARM proofs. For now, we want to be able to keep the proofs for the ARM
architecture checking in the x64 branch.
2016-08-02 17:47:58 +10:00
Matthew Brecknell
ff3b9be933
x64: reinstate maxIRQ check
...
This was accidentally removed from the Haskell and executable specifications.
2016-08-02 17:20:28 +10:00
Matthew Brecknell
bbfc1df601
x64 abstract spec: add some missing cases in ArchVSpace_A unmap operations
...
These had been undefined, causing some crunch commands to fail.
2016-07-27 12:26:53 +10:00
Joel Beeren
68de1729cd
x64: spec: replaced magic numbers with word_size_bits
2016-07-26 15:37:58 +10:00
Joel Beeren
574e287cab
x64: spec: reverted bits changes from last commit, was originally correct
2016-07-25 16:49:09 +10:00
Matthew Brecknell
c2fa704d9b
add workaround for building documents with TeX Live 2016 [VER-622]
...
Isabelle LaTeX style files use old font commands \bf, \rm, \tt, etc.
However, newer versions of some LaTeX document classes (e.g. scrbook)
have removed support for these commands. This brings back those
commands for documents built with isabelle.sty.
2016-07-22 07:48:08 +10:00
Rafal Kolanski
58153f923c
rerun haskell translator, fix design spec
2016-07-22 01:10:29 +10:00
Joel Beeren
d0d10fa7f3
x64: fixed magic word length number in ArchVSpaceAcc_A
2016-07-21 16:18:17 +10:00
Corey Richardson
dd73a2c819
run haskell translator
2016-07-21 15:54:49 +10:00
Corey Richardson
e2c55aa544
run haskell translator
2016-07-20 18:16:23 +10:00
Alejandro Gomez-Londono
93adccc141
license-tool: missing license headers + .licenseignore [VER-551]
2016-07-14 16:34:31 +10:00
Matthew Brecknell
b3c809983b
arch_split: invariants: split Ipc_AI [VER-572]
2016-06-27 17:19:11 +10:00
Alejandro Gomez-Londono
9c608c62dc
arch_split: Schedule_AI [VER-565]
2016-06-02 14:20:06 +10:00
Joel Beeren
61d0de297b
x64: arch-ified machine word size to allow substitution for type variables
2016-06-01 13:27:24 +10:00
Joel Beeren
02824d7599
x64: add x64 haskell code from seL4 repository
2016-06-01 11:52:27 +10:00
Joel Beeren
9d58764b93
x64: Invariants_AI now processes, removed some arch-specific types
2016-06-01 11:14:43 +10:00
Joel Beeren
d4f54686f2
x64: ArchInvariants_AI passes except 1 sorried lemma - valid_arch_objs_alt
2016-06-01 11:14:43 +10:00
Joel Beeren
b95f452ad0
x64: progress in ArchInvariants_AI, up to valid_arch_objs_alt
2016-06-01 11:14:43 +10:00
Joel Beeren
f2cf12c345
x64: updated ASpec for WordSetup arch-split
2016-06-01 11:14:43 +10:00
Joel Beeren
8baa7c34ed
x64: retranslate haskell after rebase
2016-06-01 11:12:55 +10:00
Joel Beeren
21fd88309f
x64: up to lemmas in ArchInvariants_AI
2016-06-01 11:12:55 +10:00
Joel Beeren
1bc374fbaa
x64 invs: up to vs_refs_pages
2016-06-01 11:12:55 +10:00
Joel Beeren
73b731562c
x64: add arch_split'd x64 spec with IOMMU stuff
2016-06-01 11:12:55 +10:00
Matthew Brecknell
9ccdbfa21e
arch_split: move locale setup to generic theory
2016-05-31 15:14:40 +10:00
Japheth Lim
40570bc4fe
regression: add test to check theory import paths
...
This commit also fixes all bad imports reported by the test script.
Jira issue VER-560
2016-05-27 16:17:13 +10:00
Japheth Lim
225a2dbe79
haskell: add .PHONY makefile entries
2016-05-24 16:31:03 +10:00
Japheth Lim
6ae8d712ec
haskell: reconstruct lost comment from galois-domains merge
2016-05-24 16:31:03 +10:00
Japheth Lim
3409a92eca
haskell: document the package version constraints
2016-05-24 16:31:03 +10:00
Japheth Lim
858733c318
haskell: add GHC config var to makefile
...
This allows people with multiple GHCs to select the correct one (7.8).
2016-05-24 16:31:03 +10:00
Japheth Lim
218f6ccbf3
haskell: add license tag to util script
2016-05-24 16:31:03 +10:00
Japheth Lim
37fa2f359a
haskell: revert minimum cabal-version
...
GHC 7.8 ships with Cabal 1.18 but the .cabal file asks for >=1.20,
which seems to be unnecessary. This commit reverts to >=1.18.
2016-05-24 14:53:00 +10:00
Japheth Lim
c71fb4da54
regression: add test for building Haskell kernel
...
Currently requires GHC 7.8.x.
2016-05-24 14:52:51 +10:00
Japheth Lim
ebc7cbe584
haskell: move Haskell kernel into spec/
2016-05-24 14:18:13 +10:00
Joel Beeren
6a2692abc6
lib: fix theory includes for arch-splitted WordSetup
2016-05-20 12:31:10 +10:00
Gerwin Klein
80456aa2c7
abstract: reduce syntax ambiguity
2016-05-16 21:11:40 +10:00
Gerwin Klein
322f1023f5
word_lib: adjust theory dependencies
2016-05-16 21:11:40 +10:00
Gerwin Klein
2a6df7a9a3
capDL: remove duplicate wordbits
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
Daniel Matichuk
7e37215bd2
arch_split: add extend_locale to base import
2016-05-06 18:37:16 +10:00
Matthew Brecknell
bb0644beaa
arch_split: merge master
2016-05-06 16:44:43 +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
Daniel Matichuk
670d1c118d
arch_split: added optional definition override for crunch. Reduced qualification commands to minimal required set.
2016-05-04 15:14:41 +10:00
Matthew Brecknell
a2135ca8ce
arch_split: Refine checking, including Orphanage
2016-04-30 16:25:20 +10:00
Matthew Brecknell
0c3a12771d
arch_split: merge master
2016-04-28 14:36:43 +10:00
Matthew Brecknell
0e5ffd1ea0
arch_split: requalify abstract theories
2016-04-27 18:46:16 +10:00
Daniel Matichuk
1d20b393c0
arch_split: replaced sublocale with global_naming
2016-04-27 14:32:38 +10:00
Matthew Brecknell
8ab955984f
arch_split: CSpec checking
2016-04-26 13:45:59 +10:00
Daniel Matichuk
3191c485d5
arch_split: added ARM_A and ARM_H locales
2016-04-20 17:31:45 +10:00
Daniel Matichuk
04362dba27
arch_split: some quick and dirty arch_splitting by selectively interpreting the ARM locale (with FIXMEs)
2016-04-07 17:05:14 +10:00
Daniel Matichuk
72337faa7b
arch_split: added namespacing to ExecSpec
2016-04-01 15:17:17 +11:00
Daniel Matichuk
144778e8eb
arch_split: avoid caching file_defs in translator to make CONTEXT environment function as expected
2016-04-01 15:09:34 +11:00
Daniel Matichuk
d0a29887ff
arch_split: checkpoint for namespacing haskell
2016-04-01 15:09:34 +11:00
Matthew Brecknell
f89279e381
arch_split: reworking predicates about arch objects and types
2016-03-24 17:24:14 +11:00
Matthew Brecknell
f2cc8d7c0f
arch_split: invariants: progress in ArchADT_AI
2016-03-18 13:08:26 +11:00
Thomas Sewell
7e9b8224ee
Factor out bitfield proof text into Eisbach lib.
...
There's a lot of proof text quoted into the source of the bitfield generator
(../seL4/tools/bitfield_gen.py). Optimising that requires even more complex
proof scripts. Instead of quoting them there, this introduces
lib/BitFieldProofsLib.thy which creates Eisbach methods for discharging some
relevant proof obligations. These can be tweaked without adjusting the
bitfield generator.
This approach could be taken a lot further to simplify the bitfield generator
further.
2016-03-17 15:54:24 +11:00
Sophie Taylor
d7fd88727a
SELFOUR-420: Verification of maxIRQ check in handle_interrupt.
2016-03-17 11:20:52 +11:00
Daniel Matichuk
b679b00f97
arch_split: initial attempt at redefining invariants to avoid changing too many proofs
2016-03-04 19:03:45 +11:00
Daniel Matichuk
5e2f9a5e7c
arch_split: change caps_of_state to be explicit projection f caps_of_state
2016-03-04 19:03:45 +11:00
Matthew Brecknell
b88de8b2e2
arch_split: trivial fixup SpecCheck inconsistency
2016-03-03 16:01:15 +11:00
Matthew Brecknell
8042994eec
arch_split: fix namespacing for DSpec and SepTacticsExamples
2016-03-03 14:56:43 +11:00
Matthew Brecknell
8cc95bfb8e
arch_split: merge master into arch_split
2016-03-01 11:30:47 +11:00
Japheth Lim
3144c4d847
Remove time limits from Isabelle ROOT files.
2016-02-29 14:52:37 +11:00
Miki Tanaka
6f6c58168c
SELFOUR-56: Remove diminish rights from IPC
2016-02-24 13:24:10 +11:00
Daniel Matichuk
d107cb6758
arch_split: halfway into KHeap_AI
2016-02-22 17:48:52 +11:00
Japheth Lim
5772559915
regression: bump timeouts further. All timeouts now multiples of 1hr.
2016-02-22 17:38:35 +11:00
Matthew Brecknell
84d2889d45
Isabelle2016: merge master into 2016
2016-02-19 16:17:26 +11:00
Daniel Matichuk
df8261c121
arch_split: split up Invariants_AI
2016-02-17 16:36:29 +11:00
Xin Gao
91b9490d0a
l4v-sabre: regenerate haskell-spec
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
c1574f1f32
cspec: build: avoid re-entering isabelle via dash-0.5.8
2016-02-17 11:04:20 +11:00
Matthew Brecknell
c65e290a8b
Isabelle2016: merge master into 2016
2016-02-16 12:52:24 +11:00
Daniel Matichuk
1018d01b6f
arch_split: More namespacing progress and invariant splitting. Checks halfway into Invariants_AI
2016-02-05 17:00:06 +11:00
Daniel Matichuk
9718f1bda2
arch_split: progress on namespacing abstract spec
2016-02-05 16:59:18 +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
253b04f6d9
regression: use CPU instead of real-time timeouts for all tests.
...
Also update and clarify test spec documentation.
2016-02-01 19:51:13 +11:00
Miki Tanaka
b287127924
DRefine and DPolicy finished (includes a small change in ASpec)
2016-01-29 07:11:11 +11:00
Daniel Matichuk
0063075ba4
Merge remote-tracking branch 'verification/master' into arch_split
2016-01-28 18:26:53 +11:00
Miki Tanaka
671c5673bd
more fixes in DRefine: some changes in proofs involving uint / unat
2016-01-28 14:07:42 +11:00
Daniel Matichuk
a1f23e5b28
arch_split: DRefine now builds
2016-01-25 18:42:27 +11:00
Joel Beeren
080268851a
fix CRefine after shared_types got moved
2016-01-22 11:51:49 +11:00
Daniel Matichuk
c282969c54
Merge remote-tracking branch 'verification/master' into arch_split
2016-01-21 10:22:48 +11:00
Daniel Matichuk
b214ac035f
resurrected "defs" command for Isabelle2016-RC1
2016-01-18 15:10:47 +11:00
Joel Beeren
c0173e2e85
archirq: bump kernel version
2016-01-18 11:50:10 +11:00
Joel Beeren
cb4cb4201c
archirq: bump haskell kernel version
2016-01-18 10:30:24 +11:00
Joel Beeren
efb4c61816
archirq: Remove redundant invocation, renamed
...
arch_decode_interrupt_control.
2016-01-14 17:50:33 +11:00
Daniel Matichuk
fad2c6aae9
paramatrised abstract and haskell specs over L4V_ARCH
...
Haskell translator was modified to support multiple translations
of the haskell, with different build parameters.
2016-01-13 12:01:40 +11:00
Joel Beeren
7b1d4a12a6
SELFOUR-114: remove duplicated message_info struct
2016-01-11 14:13:13 +11:00
Gerwin Klein
02cfe4d009
ASpec
2016-01-10 17:48:49 +11:00
Japheth Lim
d92666bc30
regression: remove forceful build options from CSpec makefiles. They don't seem to be needed.
2016-01-07 18:39:50 +11:00
Japheth Lim
3c4b566484
regression: fix tests.xml dependencies to be consistent with ROOTs.
2016-01-07 18:39:50 +11:00
Joel Beeren
1ccd4f5dcc
conversion: Rationalise standard types
2015-12-10 21:24:22 +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
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
Thomas Sewell
6fa0909124
Partial progress on using array assertions.
2015-12-02 09:05:04 +11:00
Gerwin Klein
0f2d557679
terminology in comments: async ep -> notifications
2015-11-24 16:58:22 +13:00
Gerwin Klein
00bfafe2f5
Wait -> Recv: update specs
2015-11-20 16:02:14 +11:00
Gerwin Klein
8fb2dc2b15
Wait -> Recv: haskell update
2015-11-20 16:02:13 +11:00
Joel Beeren
457a55a831
add arch_tcb object to C, rename aep -> ntfn
2015-11-20 16:02:13 +11:00
Gerwin Klein
05c6abc751
removed unused (and outdated) constants
2015-11-13 15:24:36 +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
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
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
Corey Richardson
d28994d860
Consistently use /usr/bin/env to invoke python
2015-10-13 16:42:53 +11:00
Nickolai Zeldovich
1060eb664a
fix typo in Syscall_A.thy documentation
2015-10-13 16:41:04 +11:00
Daniel Matichuk
c8d0692008
sys-init now checks
2015-09-22 12:14:27 +10:00
Daniel Matichuk
dab3914e95
change sending on a bound async ipc to avoid revoke_cap
2015-09-21 17:18:37 +10:00
Ramana Kumar
1ae434b9d5
aep-binding: attempted progress on Bisim, 1 sorry remains
...
assumptions include aep_obj aep = IdleAEP and aep_bound_tcb aep = Some
x, which I guess is probably a contradiction, but I don't know how to
prove that.
2015-09-17 17:55:57 +10:00
Joel Beeren
8467425906
aep-binding: fixed ASepSpec
2015-09-16 15:30:19 +10:00
Joel Beeren
f117c99903
aep-binding: updated AInvs, Access, Refine for new decodeBindAEP
2015-09-15 16:31:14 +10:00
Joel Beeren
5babd2ce21
aep-binding: restructured decode_bind_aep for infoflow
2015-09-15 16:31:13 +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
b7bb3666f4
Update haskell for proving 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
Daniel Matichuk
9882205e15
Most recent version of subgoal focus tools
2015-07-08 15:44:33 +10:00
Gerwin Klein
80897b5bbc
spec: tabs -> spaces
2015-05-28 14:03:53 +10:00
Gerwin Klein
cfec9ea0db
Merge branch 'master' into 2015
2015-05-28 11:45:13 +10:00
Gao Xin
bd0f0c29d1
small fixes on haskell translator and haskell spec templates
2015-05-28 11:30:22 +10:00
Joel Beeren
7b6ddc5212
updated translated haskell spec
2015-05-28 11:30:22 +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
ca88de6611
Merge from master.
2015-05-26 07:47:54 +10:00
Matthew Fernandez
221cb74dd5
Fix: Description of `SORRY_BITFIELD_PROOFS` in cspec README.
...
The kernel's Makefile expects this value to be `1` and will incorrectly detect
`yes` as a directive *not* to sorry these proofs.
2015-05-19 12:27:37 +10:00
Gerwin Klein
e09f88d2e7
2015 update for CBaseRefine
2015-05-17 10:42:15 +10:00
Gerwin Klein
12fa86863a
fewer warnings
2015-05-16 19:52:49 +10:00
Gerwin Klein
e4b54fea78
capDL spec: fewer warnings
2015-05-09 13:05:01 +02:00
Gerwin Klein
277ecdf2bb
remove syntax ambiguity
2015-05-09 13:04:11 +02:00
Gerwin Klein
17826f9b49
more Isabelle2015 update; AInvs up to (excluding) Syscall_AI
...
also includes some global replacements
2015-04-18 21:51:26 +01:00
Gerwin Klein
190e7c38d6
start work on Isabelle 2015 update
2015-04-17 16:19:32 +01:00
Gerwin Klein
22af66555c
remove even arch calls from separation kernel setup
...
(patch by Simon Winwood)
2015-04-10 17:39:24 +10:00
Daniel Matichuk
a221a52350
Added new proofcount tool to "tools" and removed old one from "lib".
...
Removed reference to old proof_counting from proof/ROOT and spec/ROOT
2015-02-11 17:46:34 +11:00
Matthew Fernandez
2b23652b5e
cspec: Check CPP exists and fallback on native CPP if possible.
2015-01-22 13:36:53 +11:00
Gerwin Klein
7e7d39c24e
enable XN in abstract spec; update AInvs and Refine
2014-11-28 08:58:57 +11:00
Gerwin Klein
21e7e33878
import Haskell version of XN patch
2014-11-28 08:58:57 +11:00
Gerwin Klein
e4d8fb5dba
GHC 7.8 update (bitSize -> finiteBitSize)
2014-11-28 08:58:57 +11:00
Andrew Boyton
fe14c7c456
Make toPAddr and fromPAddr input abbreviations (not abbreviations).
...
This stops every instance of "id" becoming "fromPAddr" in goals.
2014-10-24 16:26:19 +11:00
David Greenaway
3fb7f99d55
make-spec: Avoid generating unnecessary whitespace in instance proofs.
2014-10-21 21:36:27 +11:00
David Greenaway
7521fa080b
spec: Remove excessive strings of newlines.
2014-10-21 10:42:43 +11:00
Thomas Sewell
8e427dcb3b
Renovate StaticFun a bit.
...
The functor is gone, and instead StaticFun exports two more general
operators, one for defining a partial map by a tree, and one for
extracting the theorems from an existing partial map definition.
The extraction process uses simplification in a more conservative
manner than before, and is guaranteed to produce exactly the
expected theorems.
2014-09-23 14:40:31 +10: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
Andrew Boyton
2b7b258997
sys-init: Prove the starting of threads is done correctly.
...
We no longer assume the starting of threads, but prove it correct
(assuming the behaviour of the scheduler).
2014-09-18 12:30:04 +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
Gao Xin
0199c5c19c
Fix seL4_TCB_Resume
2014-09-12 15:28:47 +10:00
Gao Xin
5015f53d95
fix seL4_TCB_WriteRegisters
2014-09-10 17:30:35 +10:00
Gao Xin
47662af345
fix DSpecProofs
2014-09-09 15:57:52 +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
Gao Xin
77dd554227
page_map_unmap_cancel : cdl spec changed and drefine fixed.
2014-09-05 14:48:22 +10:00
Andrew Boyton
7693e1fadc
TakeGrant: Rename a couple of constants to make things clearer.
...
has_at_least => cap_in_caps
has_at_most => caps_dominated_by
2014-09-04 14:13:46 +10:00
Joel Beeren
a5f2cab271
Merge branch 'master' into ioapic
2014-09-02 11:13:55 +10:00
Joel Beeren
8fa6226ecc
ioapic: fixed specs for change to 14 bit FSR
2014-09-01 16:41:33 +10:00
Thomas Sewell
caf0529c7f
Move burden of 'halt' proof, use less modifies.
...
In detail:
- add a general user-specified exception to c_exntype
(for use in tools like Substitute)
- wrap calls to 'halt' in Guard {}, making it clearer that
halt is never called, simplifying asmrefine
- repair halt changes in crefine
- avoid use of some suspicious 'modifies' properties in crefine
which were generated by the parser for functions where inline
ASM blocks have been elided, and which may be inaccurate.
2014-08-29 13:57:28 +10:00
Joel Beeren
b3e2eb1f9d
ioapic: finished up to InfoFlowC
2014-08-28 15:56:26 +10:00
Joel Beeren
8d11a22f5b
ioapic: first abstract spec
2014-08-22 16:24:40 +10:00
Gerwin Klein
f1d808c96a
integrate separation kernel config proofs
...
Hooked up into build system and regression test; added READMEs
2014-08-13 22:08:46 +10:00
Gerwin Klein
3556bee2dc
github import of static cap config proofs
2014-08-13 15:31:21 +10:00
Gerwin Klein
12b1b0d16f
move isAligned to HaskellLib
...
Isabelle2014 doesn't like defs to be less general than the consts declaration.
2014-08-09 15:59:24 +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
Gerwin Klein
954492534c
ported ASpec to Isabelle2014-RC0
2014-08-09 15:00:18 +10:00
Gerwin Klein
ef7ba847c0
bump API version
2014-07-28 11:10:47 +02:00
Corey Lewis
71ad3eed07
Update a comment in the capDL spec.
2014-07-28 17:45:50 +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
Gerwin Klein
4326d30cdc
the other README files for spec/
2014-07-22 19:11:43 -04:00
Gerwin Klein
fc4200f845
README files for spec/
2014-07-22 19:10:10 -04:00
Gerwin Klein
50dda7708c
comment cleanup
2014-07-22 18:10:20 +02: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
Andrew Boyton
36588c4359
Minor cleanup of proofs in the Take/Grant security model.
2014-07-22 14:36:53 +10:00
Gerwin Klein
1273b8aac8
fix haskell version generation
2014-07-21 11:18:14 +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