History log of /seL4-l4v-10.1.1/HOL4/src/quantHeuristics/quantHeuristicsScript.sml
Revision Date Author Comments
# 2056c32a 09-Feb-2017 Thomas Tuerk <thomas@tuerk-brechen.de>

quantHeuristicsLibSimple: add some useful rewrites to simpset-fragment

With the simple quantifier instantiation, one was likely to end up with
terms like

``HD l::TL l = l``

or

``l = [HD l]``

or

``X = SOME (THE X)``

Now, some special rewrite rules are added to simplify these to

``~(l = [])``,

``LENGTH l = 0`` and

``IS_SOME X``

respectively.


# 1c653e3e 06-Feb-2017 Thomas Tuerk <thomas@tuerk-brechen.de>

implement simple quantifier heuristics

The quantifier heuristics library is powerful, but often slow. The
unwind conversions are fast, but have serious restrictions. This commits
adds simple quantifier heuristics. They are based on the techniques
developed for quantifier heuristics library, but only search gap guesses
that don't contain free variables. Some very limited experiments suggest
that it is similarly fast as unwind. It can handle all the cases unwind
can handle. However, it supports also a much richer syntax. Moreover, it
can instantiate in addition to universal and existential quantifiers
also unique existential quantifiers, eliminate select and some.
Moreover, it knows about pairs and lists.


# 94b064b9 15-Aug-2016 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove unnecessary structure bracketting

As per 89fc99bc3, but on as many examples as a grep -R can find.


# 9b9370ac 17-Oct-2012 Thomas Tuerk <tt291@cl.cam.ac.uk>

quantifierHeuristics tweaks
- some tweaks to make sum_qp behave nicer
- for this some small changes that can be seen as
bug fixes or minor feature improvements


# 1ee7f40d 14-Oct-2012 Michael Norrish <michael.norrish@nicta.com.au>

Delete trailing whitespace in src and examples.


# f9bf2f12 05-Oct-2012 Thomas Tuerk <tt291@cl.cam.ac.uk>

A bit more work on list_qp in order to handle LENGTH. For
LENGTH with large numbers, list_len_qp added.
Experimental support for removing redundant function application on
quantified variables added.


# 68865120 11-Sep-2012 Thomas Tuerk <tt291@cl.cam.ac.uk>

Added support for context to quantifier heuristics, add sum_qp


# 4480c57d 24-Aug-2012 Thomas Tuerk <tt291@cl.cam.ac.uk>

cleanup of quantifier heuristics library

- more sensible names for guesses
- quantHeuristicsLib renamed to quantHeuristicsLibBase
- quantHeuristicsLibArgs renamed to quantHeuristicsLibParameters
- new shorter signature defined in quantHeuristicsLib
- adaptation of usage of quantHeuristicsLib


# d34ca269 02-Aug-2012 Michael Norrish <michael.norrish@nicta.com.au>

Delete trailing whitespace in src/


# d7a852e2 31-Jul-2012 Thomas Tuerk <tt291@cl.cam.ac.uk>

More on quantfier heuristics (I did not add all changes to the first commit)


# 845531b5 14-Sep-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove trailing whitespace in source files.


# e09c9510 18-Sep-2010 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

- reimplementation of quantHeuristicsLib.
- move parts of quantHeuristicsLib to quantHeuristicsTools
- selftest added

Before guesses were justified by hand crafted theorems. There were modified using low level forward proof techniques. This resulted in quantHeuristicsLib being hard to understand and maintain.

This reimplementation exploits recent addition to pairTools about handling paired quantification in order to introduce general predicates for guess theorems. Defining special predicates allows proving general lemmata easily. quantHeuristicsLib can the use the lemmata instead of low level proofs. However, this comes with the additional cost of introducing and eliminating tupled quantifiers.

The new version is easier to understand and maintain. Moreover, it became much simpler to add user specified heuristics. The behavior changed slightly. For example, unnecessary priming of newly introduced variables has been eliminated.


# 7b73c8d7 16-Jul-2010 Konrad Slind <konrad.slind@gmail.com>

src/num/theories/SingleStep.{sig,sml} is gone. The
defininitions of Cases, Cases_on, Induct, Induct_on,
CASE_TAC (and co.) are now in basicProof/BasicProvers.
completeInduct_on and measureInduct_on are now in
numLib. recInduct is now in src/tfl/Induction.sml.
All these are collected in bossLib, so the changes
should be invisible to ordinary users.

SingleStep.*.doc has been changed accordingly.

BasicProvers.NORM_TAC should now automatically perform
all case splits (from if-then-else expressions as
well as case expression) arising anywhere in the goal.


# 4761143b 10-Aug-2009 Tjark Weber <Tjark.Weber@cl.cam.ac.uk>

Removed trailing whitespace from all .sml and .sig files.

This affects over 900 files and was done using emacs's delete-trailing-whitespace
function in batch mode. Building the system with Poly/ML and Moscow ML seems to
work, so I'm hoping these changes don't break anything. Please complain if
they do!


# 630e97c5 29-Jul-2009 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Now occurences of a variable are tried to be removed before a possible instantiation is searched. For example
"?x. P /\ (f 2 = f x) /\ (Q (f x))" is simplied to "?x. P /\ (f 2 = f x) /\ (Q (f 2))" before an instantiation for x is searched. This enables the heuristics to instantiate x with 2.

Moreover, an additional field was added to qhcas. Now one can specifiy a list of theorems used for the final simplification after an instantiation has been picked.


# 9a7e8f8a 17-Dec-2008 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

quantHeuristics is a library that instantiates quantifiers with guesses found by heuristics. Please see quantHeuristicsLib-examples.txt for some documentation and examples.