Commit Graph

741 Commits

Author SHA1 Message Date
David Greenaway 3c01f08242 NICTACompat: Disable "Trace_Attrib".
Loading "Trace_Attrib" causes strange, unexplained lock-ups in
Isabelle/jEdit (and possibly Isabelle build). In particular, at random
times shortly after Trace_Attrib is loaded, everything will stop
processing with the CPU at 0%.

The root cause of this is currently unknown. This patch disables it
until the problem can be tracked down further.
2014-11-04 15:30:12 +11:00
Matthew Fernandez ba83e00e7a lib: Another bitfield helper lemma. 2014-11-04 11:53:30 +11:00
Matthew Fernandez 63346b52ed lib: Add various word helper lemmas for bitfield proofs. 2014-11-04 09:11:35 +11:00
Matthew Fernandez 9d90bcf82c lib: Fix some names from previous commit; couple more helpers. 2014-10-30 15:00:55 +11:00
Matthew Fernandez 36a0be9f26 lib: Add some misc helper lemmas. 2014-10-30 10:32:18 +11:00
David Greenaway b737c6ba2a focus: Get "Focus.thy" working on Isabelle 2014.
Was investigating if Focus could help solve a particular problem
(involving "apply subst" not being able to work with bound variables).
Didn't solve the particular problem I was facing, but committing the fix
to Focus none-the-less.
2014-10-20 15:04:33 +11:00
David Greenaway e9dde6477a autocorres: Move generic "set.ML" to "lib/" directory. 2014-10-15 11:11:20 +11:00
deang 6df2eb6cf9 infoflow: weakened assumptions for c refinement of infoflow adts
The fact that the C infoflow adt refines the abstract infoflow adt now only requires that given user operation is nonempty and not sane (nonempty and doesn't return an interrupt).
Also added some more general lemmas about fw_sim and refinement to lib/Simulation.thy.
2014-10-14 17:01:11 +11:00
David Greenaway 6c915fa629 infoflow: Move "EquivValid" out of "infoflow/", into "lib/".
More importantly, remove seL4 from the dependencies of "EquivValid", so
others can use it.

Also, we fixup the fallout.
2014-10-13 11:05:31 +11:00
David Greenaway e0b7e21d56 attribute tracing: Mechanism to work out changes in simpsets across revisions.
The idea of this file is to allow users to determine how the simpset,
cong set, intro set, wp sets, etc. have changed from an old version of
the repository to a new version.

The process is as follows:

  1. A user runs "save_attributes" on an old, working version of the
     theory.

  2. This tool will write out a ".foo.attrib_trace" file for each
     theory processed.

  3. The user modifies imports statements as required, possibly
     breaking the proof.

  4. The user can now run "diff_attributes" to determine what
     commands they should run to restore the simpset / congset /etc
     to something closer to the old version.

The tool is not complete, in that it won't always suggest the full set
of "simp add", "simp del", etc commands. Nor does it know that a rule
added to the simpset is causing a problem. It merely lists
a hopefully-sensible set of differences.
2014-10-13 11:05:31 +11:00
Daniel Matichuk 7577306226 Fixed apply trace for Isabelle 2014 2014-10-13 11:05:21 +11:00
David Greenaway 2e305baf24 lib: Add experimental "distinct" command.
The "distinct" command takes a list of 'n' terms, and generates O(n^2)
lemmas for you to prove that the 'n' terms are all distinct. These
proofs can typically be carried out by an "apply auto" command, giving
you O(n^2) distinctness theorems.

These new theorems can then be thrown into a simpset to avoid having to
constantly unfold definitions merely to prove distinctness.

This brings quite significant speedups in the "Example_Valid_State"
proof (demonstrated in the next commit), for example, as it means that
raw definitions need not be unfolded, and hence automated tactics don't
get side-tracked with their numerical definitions.

The "distinct" command is not really scalable, due to its O(n^2) proof
terms generated. If we wanted to use this in a larger example, we would
probably want a "ordered" command, which forces you to show that 'n'
terms have some ordering, and then automatically derive the O(n^2)
possible proof terms on-the-fly in a simproc (possibly using Isabelle's
existing "order_tac").
2014-10-07 08:59:17 +11:00
David Greenaway 37bfd30de6 NICTATools: Re-enable NICTATools import from NICTACompat.
NICTATools contains the occassionally-useful "unused meta-foralls"
warning, and the very-useful-but-still broken "apply_trace" command.

Add the import back, hoping that someone (Hi Dan!) comes and fixes the
"apply_trace" tool.
2014-10-01 16:03:15 +10:00
David Greenaway ea63ccd7ed HOLLemmaBucket: Add some random proofs. 2014-10-01 10:57:58 +10:00
David Greenaway e3b893e7d6 Merge 'master' into 'isabelle-2014'.
Conflicts:
	lib/Apply_Trace.thy
2014-09-18 09:23:12 +10:00
David Greenaway d521a81232 lib: More Isabelle 2014 updates. 2014-09-18 09:21:11 +10:00
David Greenaway 5073f46533 apply_trace: Add lower-level interface for clearing/reading deps.
The lower-level interface is useful for ML hackers, trying to debug
their own ML tactics.
2014-09-17 16:38:16 +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
David Greenaway 0547cb707b crunch: Reduce tracing messages, use "writeln" instead of "tracing".
Excessinve tracing messages cause jEdit to pause, waiting for the user
to click "Show more tracing output. We eliminate the debugging tracing
messages by default, and use "writeln" instead for the remainder.
("writeln" doesn't cause jEdit to pause.)
2014-09-16 11:14:09 +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
David Greenaway 730825abe5 capDL-api: Port to Isabelle 2014. 2014-09-12 11:40:28 +10:00
David Greenaway 03b1952aaa crefine: Port CRefine to Isabelle 2014. 2014-09-11 16:57:59 +10:00
David Greenaway 4cb3f753a3 clib: ctac-method: Fix whitespace.
Remove tabs, delete trailing whitespace.
2014-09-10 17:27:41 +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
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
Thomas Sewell 0346fb20b6 SIMPL->Graph proofs largely working. 2014-08-27 15:30:34 +10:00
David Greenaway 5ab730970b autocorres: Remove unnecessary rule from "whileLoop_results".
Thanks Tom for spotting this while proofing my thesis.
2014-08-13 12:18:46 +10:00
Thomas Sewell fc6e57716a Proof updates, working as far as AInvs. 2014-08-11 14:50:56 +10:00
Gerwin Klein e8d1ed6ded ported lib/* theories to Isabelle2014-RC0 2014-08-09 21:08:47 +10:00
Gerwin Klein 3c0b704ff2 retire unused theories
Upto is broken by the removal of the finite_intvl_succ class
2014-08-09 20:02:02 +10:00
Gerwin Klein 8d2cfe7417 CParser and lib tweaks; AutoCorres builds
CParser not finished yet, though: getting errors in cparser_test about linear
theory updates at end of thy.

Found more instances where we should be using Local_Theory.exit_global, but
might be besides the point (didn't help). Also might be overshooting the goal.
2014-08-09 19:23:17 +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
Lars Noschinski fe36a97b4d Port AutoCorres to Isabelle 2014-RC0 2014-08-08 17:29:54 +10:00
Corey Lewis ffb0d165f6 Some more cleanup of drefine. 2014-07-23 15:29:20 +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
Corey Lewis d52d8ad148 Fix previous commit. 2014-07-19 00:04:21 +10:00
Corey Lewis 07b85fe034 Move some more lemmas into lib. 2014-07-18 17:23:07 +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