Commit Graph

3067 Commits

Author SHA1 Message Date
Gerwin Klein c1a0f3be1c thydeps: retire theory dependency check
Isabelle2018 will perform these checks now automatically when loading ROOT
files, and the thydeps tool does not understand sessions-qualified imports.
2018-08-20 09:05:52 +10:00
Gerwin Klein 6aa78c310a lib: fix unused/historical StateMonad theory 2018-08-20 09:05:52 +10:00
Gerwin Klein 382b07dc20 c-parser: remove unused dependency on Lib 2018-08-20 09:05:52 +10:00
Gerwin Klein f2a8c3e07e c-parser: session qualified imports for parser tests 2018-08-20 09:05:52 +10:00
Gerwin Klein 5ae795c586 c-parser: qualified session imports; Word_Lib base image
Previously, everything was counted under session CParser, incl most of
Word_Lib. The dependency on Word_Lib thus revealed means Word_lib is the
better base image for session Simpl-VCG.
2018-08-20 09:05:52 +10:00
Gerwin Klein b66d26f7e6 lib/Word_Lib: use qualified session imports
This also makes the dependency on lib/Distinct_Prop and $L4V_ARCH/WordSetup
more explicit.
2018-08-20 09:05:52 +10:00
Michael Sproul 2151a57c51 x64: crefine: move two lemmas up to CSpaceAcc_C 2018-08-17 15:41:12 +10:00
Michael Sproul 4ddf8ec2e4 x64: crefine: remove needless `unwrap_or` def 2018-08-17 15:41:12 +10:00
Matthew Brecknell 4258929246 haskell-translator: add Makefile dependency on caseconvs 2018-08-16 16:44:12 +10:00
Japheth Lim f617dc60e7 lib/Trace_Schematic_Insts: refactor; improve ML style 2018-08-16 14:21:16 +10:00
Japheth Lim cd1d05165d lib/Trace_Schematic_Insts: refactor and add code comments 2018-08-16 14:21:16 +10:00
Japheth Lim fe5c9b846c lib/Trace_Schematic_Insts: some cleanup; add basic tests 2018-08-16 14:21:16 +10:00
Japheth Lim f62ca33408 lib: add trace_schematic_insts method combinator 2018-08-16 14:21:16 +10:00
Japheth Lim 6065d3e7b0 lib/Time_Methods_Cmd: small fixes
Add method description string; fix a theory import.
2018-08-16 14:21:16 +10:00
Corey Lewis 52ce1022c6 lib: Change Add_Locale_Code_Defs to filter out rules with sort hypotheses. 2018-08-14 11:32:31 +10:00
Gerwin Klein 20d0db1e7e autocorres: mark Auto_Separation_Algebra as unfinished
(uses cheat_tac for a few tactics that are not filled in yet)
2018-08-06 14:28:44 +10:00
Gerwin Klein 377caf0a86 c-parser: allow skipping modifies-proof in quick_and_dirty only 2018-08-06 14:28:44 +10:00
Gerwin Klein 2d8233bb76 cparser: set sorry_modifies_proofs conditionally on env var
This includes replacing the non-thread-safe ref sorry_modifies_proofs with a
proper Config option.
2018-08-06 14:28:44 +10:00
Gerwin Klein 53fde5e5ff lib/design: enable more Haskell-like list comprehension syntax
Accept "[f x | x \leftarrow t]" in addition to "[f x . x \leftarrow t]",
because the former is what naturally comes out of the Haskell translator, and
the regexps that would be necessary in the Haskell translator for this are
distasteful.

JIRA-VER 927
2018-08-06 11:22:54 +10:00
Gerwin Klein 24fbac1e67 lib: remove non-exhaustive pattern warning 2018-08-06 11:22:53 +10:00
Gerwin Klein 4db4af2347 dspec: resolve old FIXMEs in capDL spec 2018-08-06 11:22:53 +10:00
Gerwin Klein 9a4d2677e3 lib+spec: move definition of machine_word to Word_Lib
JIRA VER-963
2018-08-06 11:22:52 +10:00
Gerwin Klein 807a9792d9 arm-hyp haskell: use consistent ARMHYP_SMMU tag 2018-08-06 11:22:52 +10:00
Gerwin Klein d860d1e656 haskell: code sharing turned out to work; remove FIXME 2018-08-06 11:22:52 +10:00
Gerwin Klein e82c7a5c50 x64 design: clean out old FIXMEs 2018-08-06 11:22:52 +10:00
Gerwin Klein 5ae7cc23b1 aspec: msg_align_bits and related are arch independent
While the numerical value is arch dependent, the definition and symbolic value
are not. This commit factors out the symbolic computation and only unfolds the
numeric value in the architecture dependent spec.
2018-08-06 11:22:51 +10:00
Gerwin Klein ead3e6fdc4 aspec: message_info_to_data is mostly arch independent
Factored out msg_label_bits, which is the only architecture specific part.
2018-08-06 11:22:51 +10:00
Gerwin Klein d4f59c862c aspec: resolve ntfn FIXME 2018-08-06 11:22:50 +10:00
Gerwin Klein b383b9a187 aspec: move up mask_vm_rights, make arch independent
Strictly speaking vmrights might at some point become architecture dependent,
but all present architectures have precisely the same implementation, and there
are no plans to do anything different in the foreseeable future.
2018-08-06 11:22:50 +10:00
Gerwin Klein e533810190 x64 aspec: mark vt-d FIXME 2018-08-06 11:22:49 +10:00
Gerwin Klein 469b88ea30 x64 aspec: remove syntax warning 2018-08-06 11:22:49 +10:00
Gerwin Klein 8f1122270c aspec/ainvs: move TLS/ipc buffer FIXME to appropriate position in ADT_AI 2018-08-06 11:22:49 +10:00
Gerwin Klein d635232bec aspec: remove old mentions of (retired) globals_frame 2018-08-06 11:18:41 +10:00
Gerwin Klein 0ca5f831a1 x64 machine: cleanup 2018-08-06 11:18:41 +10:00
Gerwin Klein 065f4d25cd x64 aspec: resolve vtd_pt_bits; check IOPageTabelCap functions
Currently unused, but will be relevant for VT-d
2018-08-06 11:18:41 +10:00
Gerwin Klein 908787f315 aspec/haskell: clean out resolved FIXMEs 2018-08-06 11:18:41 +10:00
Thomas Sewell 26049db669 Repair proofs for wpsimp/crunch changes.
A handle of fiddly proofs change slightly. A common offender involves
tcb_cap_cases, which should be unfolded with the ran_tcb_cap_cases
rule where possible rather than with tcb_cap_cases_def.
2018-08-03 18:25:30 +10:00
Thomas Sewell 955b2ca8b2 lib: add non-cond-simplification, use in wpsimp.
Adds "non-conditional simplification" method simp_no_cond, and
various equivalents.

This is done by setting the simplifier depth limit to 0, which seems
to be a useful case. It prevents expensive conditional simplification
attempts but leaves the simplifier strategy otherwise unchanged.

This is easy to set up, and link to wpsimp.
2018-08-03 18:25:30 +10:00
Thomas Sewell ea7c58bf13 lib/crunch: use induct package.
Discard some magic that was done to instantiate an induction rule,
and instead use the existing Induct_Tacs package to apply induction
rules, which seems to be successful more often.
2018-08-03 12:20:49 +10:00
Thomas Sewell 9ba41a20ce lib: Improve documentation of Strengthen_Demo.
Clarify that the second proof is essentially a forward reference to
concepts that will be explained later in the file.
2018-08-03 12:20:49 +10:00
Thomas Sewell bfce624b2b lib: adjust some congruence rules for strengthen.
Adjusting the strengthen congruence rules for conjunction
and disjunction makes other conjuncts available as assumptions
in strengthening a conjunction. This may be useful occasionally.
2018-08-03 12:20:49 +10:00
Japheth Lim 8392624f6c infoflow: hacky speedups for Noninterference.thy
This speeds up a bunch of the slowest uwr and automaton proofs in
Noninterference, mainly by adjusting the simp depth limit to avoid
unneeded backtracking. Inspired by a rant from Tom Sewell.
2018-08-02 16:53:04 +10:00
Japheth Lim 31737df065 infoflow: improve header comment for Noninterference.thy 2018-08-02 16:53:04 +10:00
Japheth Lim 166af9e5ee access, infoflow: cleanup from previous commit; some style cleanup 2018-08-02 16:53:04 +10:00
Japheth Lim a6c11a2b28 access-control, infoflow: use generic relation for pasDomainAbs
This patch generalises the mapping between authority labels and
scheduler domains, so that the access-control integrity property still
holds when labels are not partitioned into domains. This lets us use
the integrity result on systems that don't use the domain scheduler.

The information flow proofs still rely on the domain partitioning,
hence we add constraints on the label-domain mapping for the info-flow
results to hold.

Jira VER-945
2018-08-02 15:01:42 +10:00
Thomas Sewell f3957348e8 proof/Makefile: add SimplExport* dependencies
Add the design-spec dependency to the SimplExport* targets, since the
haskell conversion needs to be done to create the MachineTypes theory
before the CKernel image can be created.
2018-07-24 11:38:40 +10:00
Thomas Sewell d262d7f747 cspec Makefile: add target for kernel source.
Adds a target name that ensures that the preprocessed kernel source
is up to date, but doesn't do any other work. This avoids confusion
when doing a check of source compatibility in building the seL4 input
for graph-refine.
2018-07-20 14:57:54 +10:00
Thibaut Perami 9523eea0d6 infoflow: Clean up infoflow, comment, wrap lines, ... 2018-07-16 15:36:21 +10:00
Rafal Kolanski 9e0551f56a arm-hyp: update proofs for TPIDRUR[OW]/TLS_BASE preservation
TPIDRUR[OW] registers removed from VCPU registers. Their saving now
lives in arch_c_entry_hook, which is before verified code is hit.

Relevant for verification, TPIDRURO is already handled as TLS_BASE
register, and TPIDRURW (holds IPC buffer) is saved/restored as part of
normal thread register save/restore.
2018-07-12 23:38:58 +10:00
Gerwin Klein db111292fe run_tests: switch off quick_and_dirty for X64 2018-07-09 09:23:40 +01:00