History log of /seL4-l4v-master/HOL4/src/integer/intSimps.sml
Revision Date Author Comments
# 4888f523 15-Oct-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove eqtype declaration for term type


# 1c5ae6b6 16-Dec-2014 Michael Norrish <michael.norrish@nicta.com.au>

Fix & document an infinite loop bug in intSimps.{OMEGA,COOPER}_ss

Problem was that the term F was viewed as suitable context for the
simplifier's decision procedure. Though superficially reasonable, this
leads to problems because the simplifier will rewrite everything it
can inside this context to F, using the rewrite

[F] |- somegenvar = F (1)

but the integer decision procedures will correctly rewrite occurrences
of F to T, because the underlying conversion is happy to prove

|- (F ==> F) <=> T

The natural number procedure in ARITH_ss doesn't suffer from this
problem because it doesn't add F as context to the decision
procedure's context, and that's the fix taken here.

The decision to use (1) above rather than rewrite to true, say, was
taken in 9bc4bdaa.


# cd4f449c 01-Feb-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix another compile-time error caused by adoption of generic thy data.


# fa4382b2 11-Sep-2008 Michael Norrish <Michael.Norrish@nicta.com.au>

* Make COOPER_ss and OMEGA_ss available in addition to INT_ARITH_ss.
The latter is an alias for OMEGA_ss. They seem to work.
* Fix the svn:ignore property of src/integer/testing


# ff453f9e 11-Sep-2008 Michael Norrish <Michael.Norrish@nicta.com.au>

Add an embodiment of the Omega d.p. for use inside the simplifier. It
can perform quite badly on goals with too many disjunctive assumptions
(and ~(x = y) counts as a disjunction).


# aed05f4e 20-Jul-2008 Konrad Slind <konrad.slind@gmail.com>

A whole mess of small changes intended
at making simpsets prettyprint informatively
in the interactive loop. Very possibly
I haven't updated all the files in the examples
directories.


# e7592d63 21-Feb-2006 Michael Norrish <Michael.Norrish@nicta.com.au>

Fix a bug in the normaliser, instantiate it for the integers, and list some
tests for the integer instantiation.


# 4cddaa12 12-Jul-2005 Michael Norrish <Michael.Norrish@nicta.com.au>

Changed a couple of misleading/annoying names. The type ssdata is now
called ssfrag (to bring it into line with documentation that talks about
simpset fragments), and the constructor SIMPSET is now called SSFRAG.
It never created a simpset, so the latter was a stupid name.


# 247fc0d4 17-May-2005 Michael Norrish <Michael.Norrish@nicta.com.au>

Removed unnecessary infix declarations.


# 4e9f9c0b 29-Apr-2005 Konrad Slind <konrad.slind@gmail.com>

Upgraded int_ss and added MIN and MAX to various simplification
support.


# d283a7d9 30-Jul-2004 Michael Norrish <Michael.Norrish@nicta.com.au>

INT_REDUCE_ss wasn't reducing ABS terms.


# afa916dd 25-Jun-2003 Michael Norrish <Michael.Norrish@nicta.com.au>

Make calculation (reduction) with the integers an automatic part of the
stateful rewriter.


# c4adb6d0 25-Jan-2002 Michael Norrish <Michael.Norrish@nicta.com.au>

Cause integer reductions to be added to global compset (for use by
bossLib.EVAL et al), when intSimps is loaded.


# e1e0984d 15-Nov-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Modified to calculate integer remainders and quotients.


# f7e50c35 06-Nov-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Added AC normalisation simpset fragements to intSimps, and removed an
associativity theorem from the standard rewrites exported by integer
theory.


# 7c698971 03-Oct-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Added handling of absolute value to the integer "compset" (used by
REDUCE_CONV).


# 5a4eaf97 17-Sep-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Squeezed a little more performance out by using QConv functions in a few
more places.


# 8cb83f61 21-Feb-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Updates to intSyntax and intSimps in order to support a new RED_CONV
function in the interface to intSimps, which applies only to reducible
integer calculations, and raises a HOL_ERR otherwise.
Cooper now includes a counter-example generation sub-function that I
will probably take out because it slows down true goals.


# 398cf561 20-Feb-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Added an int_compset : unit -> computeLib.compset function to the
module. This allows people to build on top of the integer reduction
compset without affecting the original value.


# 85709f2f 06-Feb-2001 Konrad Slind <konrad.slind@gmail.com>

More changes supporting the global compset.


# f79b44c6 16-Jan-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Removed a (now) misleading comment.


# c240c2ea 10-Jan-2001 Michael Norrish <Michael.Norrish@nicta.com.au>

Reimplemented REDUCE_CONV in intSimps, by making it use computeLib
directly. This should speed it up. Many _REDUCE theorems needed for
this additionally proved in integerScript.sml. int_arithScript has
just had a couple of minor tidy-ups.


# fc228fee 09-Nov-2000 Michael Norrish <Michael.Norrish@nicta.com.au>

Made it all Kananaskis compatible.


# 06f3126a 24-Mar-2000 Konrad Slind <konrad.slind@gmail.com>

Purely notational changes. I thought the name "COOPER_CONV" would be
catchy ...


# 3aace9a4 02-Mar-2000 Michael Norrish <Michael.Norrish@nicta.com.au>

Added definition of integer minimum and a slew of theorems about integer
divisibility. All needed for Cooper's Presburger decision procedure.


# 3d1118c6 17-Dec-1999 Michael Norrish <Michael.Norrish@nicta.com.au>

Aargh. & changed its name to int_of_num, and this file didn't know.


# 1c67f2b5 05-Nov-1999 Michael Norrish <Michael.Norrish@nicta.com.au>

I'm doomed to keep on updating this theory. Added a simpset for doing
integer calculations. A decision procedure will have to wait until
someone else decides they really need it.