Commit Graph

1536 Commits

Author SHA1 Message Date
Daniel Matichuk 76d817c5f8 corres_method: edge case with corres_search
Handle case where corres_search requires no searching at all.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 249c8b10ea apply_debug: fix example in tutorial 2017-02-15 15:00:23 +11:00
Daniel Matichuk 59c2af424b corres_method: use apply_debug by default 2017-02-15 15:00:23 +11:00
Daniel Matichuk 08a2bbf1e1 apply_debug: added "show_running" flag
Default behaviour now doesn't mark up the currently
running method - this seemed too confusing.
2017-02-15 15:00:23 +11:00
Daniel Matichuk be014b29bb apply_debug: hilight calling method
Both the breakpoint and "calling" method from
the original expression are highlighted as the breakpoint.

Note jEdit doesn't seem to highlight across theories (buffers?)
2017-02-15 15:00:23 +11:00
Daniel Matichuk edcd32ba3a apply_debug: update test/tutorial 2017-02-15 15:00:23 +11:00
Daniel Matichuk ced7e45ad4 apply_debug: use entity markup from Isabelle2016-1
This makes use of modern dynamic markup so that
clicking on a "continue" can show us the current
breakpoint without needed strange proof state print
hacks.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 82d2d945af apply_debug: remove per-continue flags
The implementation here was too messy for such an
esoteric feature.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 8ec025de01 apply_debug: hack max_threads to avoid scheduling issues
I can't figure out how to keep the cleanup phase of the
Executions module while circumventing the scheduling limitation
imposed by max_threads.

This workaround just keeps max_threads high enough to schedule the threads needed
by all active apply_debug sessions.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 74d2f78679 corres_method: add traces for corres method tests 2017-02-15 15:00:23 +11:00
Daniel Matichuk 7c1869b383 corres_method: avoid unnecessary goal restriction
This makes traces a bit more readable
2017-02-15 15:00:23 +11:00
Daniel Matichuk 1c0d72f3ce apply_trace: avoid common name "foo" in test locale 2017-02-15 15:00:23 +11:00
Daniel Matichuk 8fdd5d3ac8 apply_debug: more robust fact binding for break method 2017-02-15 15:00:23 +11:00
Daniel Matichuk 96630f98a5 corres_method: add breakpoints 2017-02-15 15:00:23 +11:00
Daniel Matichuk ebc81dd770 apply_debug: fix match issue
add testing file
2017-02-15 15:00:23 +11:00
Daniel Matichuk b8858709f5 apply_debug: make "break" syntax to capture tokens
This avoids mandatory "bounds" and lets break highlighting occur
inside of matches/eisbach methods
2017-02-15 15:00:23 +11:00
Daniel Matichuk 2d04efbb38 apply_debug: bind Eisbach context during break
This requires a few tricks, since this isn't readily available.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 905f8e6f49 apply_debug: discard context modifications
Demotes "break" to a regular tactic, simplifying its integration with other tools
2017-02-15 15:00:23 +11:00
Daniel Matichuk c786015801 apply_debug: avoid hacks in evaluation markup
Fixed issue where match was executed in closure state
2017-02-15 15:00:23 +11:00
Daniel Matichuk 2b94552d28 apply_debug: clear initial dependencies for trace 2017-02-15 15:00:23 +11:00
Daniel Matichuk 49d3f643c4 apply_debug: allow tags/trace in either order 2017-02-15 15:00:23 +11:00
Daniel Matichuk 1c7f5cfeca apply_debug: integrate apply_trace
New "trace" modifier lets you trace between continues
2017-02-15 15:00:23 +11:00
Daniel Matichuk eb350158b4 apply_trace: general interface for printing 2017-02-15 15:00:23 +11:00
Daniel Matichuk ab9f9154d3 apply_trace: attempt to give local facts
Do some name-mangling to try to find the most local variant of a fact
2017-02-15 15:00:23 +11:00
Daniel Matichuk 3fdbc1fb23 apply_debug: use one less thread
Naive use of futures/forking causes apply_debug to block if
not enough threads are available.
2017-02-15 15:00:23 +11:00
Daniel Matichuk e240f0b067 apply_debug: support context modifications in wp
Rebuild the ruleset if the context changes during execution.
This allows breakpoints to modify the wp set (during a given execution),
although this does not survive outside of the method.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 7250bd1a54 apply_debug: add "wp" breakpoint
Lift low-level wp tactic into context_tactic to support
breakpoints modifying context (i.e. wp set)
2017-02-15 15:00:23 +11:00
Daniel Matichuk f3d3162fb0 apply_debug: cleanup test code 2017-02-15 15:00:23 +11:00
Daniel Matichuk 3d81f2ad97 apply_debug: allow per-continue tags 2017-02-15 15:00:23 +11:00
Daniel Matichuk 541f289916 apply_debug: add method-based breakpoint filtering
Also fix breakpoint hilights to work when no subgoals are present
2017-02-15 15:00:23 +11:00
Daniel Matichuk e5c74668de apply_debug: support break tags
Only trigger breakpoints based on active tags
2017-02-15 15:00:23 +11:00
Daniel Matichuk 3bc3581f51 apply_debug: hilight active breakpoint, cleanup
Inject a dummy print translation to guess which breakpoint is being looked at.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 97c8619424 apply_debug: capture execution errors
- Avoid throwing exceptions on the proof thread, instead defer it to the final slot

- Manage current-method markup with extra thread, this properly clears on proof thread restarts
2017-02-15 15:00:23 +11:00
Daniel Matichuk 95742d0581 apply_debug: more synchronization issues
- Avoid starting the restart-managing thread until we have the first result.
- Fix accidental immediate restart.
- Better generational tracking to avoid stale threads manipulating the current
proof thread.
2017-02-15 15:00:23 +11:00
Daniel Matichuk 8a6350fa3f apply_debug: fix some synchronization issues
Generational tracking of tactic excursions and restarts
should block until previous results have been processed
2017-02-15 15:00:23 +11:00
Daniel Matichuk 21bd775bc0 apply_debug: add support for method re-play
This allows for execution to restart and re-play up
to the current "continue", regardless of whether or not
the overall execution has moved past it.
2017-02-15 15:00:23 +11:00
Daniel Matichuk f8c58793e5 fixed algorithm for corres_search
added Corres_Test theory file with example proofs from VSpace_R
2017-02-15 15:00:23 +11:00
Daniel Matichuk 315acdc6f4 initial commit for corres method (experimental) 2017-02-15 15:00:22 +11:00
Gerwin Klein 0b9f61c2ea bring CONTRIBUTORS up to date
(including new Data61 affiliations)
2017-02-12 13:13:02 +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
Rafal Kolanski a40d6986fd lib: word and misc lemmas from SELFOUR-242 proofs
These precipitated out during cleanup.
2017-02-09 15:05:52 +11:00
Matthew Brecknell 1d43c99acc Isabelle2016-1: fix Word_Miscellaneous import path
This was previously missed, because Isabelle ignores the import path
when the file is already part of a loaded image.

Reported-by: Daniel Matichuk <Daniel.Matichuk@data61.csiro.au>
2017-02-08 16:53:14 +11:00
Matthew Brecknell d08ee04e2f haskell: update documentation for building the Haskell kernel 2017-02-03 16:23:56 +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
Rafal Kolanski ed2870bf37 trivial: fix missing dependency in WPTutorial
Missed this when moving refine.
2017-01-31 08:42:08 +11:00
Rafal Kolanski 7657681fca move refine/* to refine/ARM/*, parametrise over $L4V_ARCH 2017-01-30 12:22:22 +11:00
Rafal Kolanski 6594aa2f9a crefine: ARM support hypervisor-enhanced sanitiseRegister
On ARM with hypervisor extensions (arm-hyp), sanitiseRegister needs vcpu
data from the arch TCB component, thus adding an extra parameter.

This is a quick fix based around normal ARM not using that parameter,
and hence does not provide enough to get the proofs through on arm-hyp.

To do it properly requires additional work around the sanitiseRegister
call-site, which needs unwrapping it from asUser and zipWithM.
2017-01-30 11:37:23 +11:00