History log of /seL4-l4v-10.1.1/HOL4/src/simp/src/congLib.sml
Revision Date Author Comments
# 65d33e15 15-Feb-2015 Thomas Tuerk <thomas@tuerk-brechen.de>

fix bug in congLib

fix a bug introduced by the change of REDUCER interface
in 3af1cefc94914690ff91c70ec41fda103152bd56.


# 059e250f 15-Oct-2014 Piotr Trojanek <piotr.trojanek@gmail.com>

rename Ho_Net.empty_net to Ho_Net.empty

All similar structures (e.g. Net and Raw) use "empty" not "empty_net";
it seems right to follow a single naming convention.


# 11247f75 22-Aug-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Remove unnecessary abstype constructions in {simp,cong}Lib.

These just make debugging more painful than it needs to be.


# a9f2f2d3 25-Oct-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Get congLib to compile again by changing Traverse API again.

Rewriters get access both to the term of the current relation and a
function that will give them an instance of reflexivity for that
relation. Thomas's code was using this possibility.


# d38ec0a9 18-Oct-2010 Michael Norrish <Michael.Norrish@nicta.com.au>

Generalise congruence API to handle terms with free vars as equivs.


# 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!


# 1d1ecce4 29-May-2009 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

A check "thm_rel = preorder" in "cong_rewrite" has been replaced by "samerel thm_rel preorder". This allows the preorder in congruence rules to have different type instantiations.


# 2252b17c 10-Mar-2009 Michael Norrish <Michael.Norrish@nicta.com.au>

Change relations that have congruence rules stored for them
(they have to be preorders) to be stored as terms rather than string
pairs (the latter encoded theory and term name, allowing constants
only). The samerel function is now what should be used to determine
if two preorders are compatible. The use of same_const and aconv
means that only single constants can be used polymorphically, but
arbitrary monomorphic terms can be used elsewhere. (It's possible
this breaks Thomas Türk's examples; I have run selftest 1 on
everything else.)


# 162a458a 12-Oct-2008 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement a scheme whereby a simpset can be limited to apply no more
than a limited number of rewrites/conversions/d.p. invocations. The
limit is stored in a simpset. By default all simpsets are unlimited.
To limit a simpset, use
limit n simpset
and it will then stop simplifying after n actions.

There is a border case: if a conditional rewrite requires exactly as
many rewrites to solve its side-conditions as it is limited to, it
will still go through with the rewrite, thereby exceeding the limit by
one (n side conditions, plus the final simplification)

The design is there to give a (better) guarantee of termination than
simpLib currently provides. For this reason, I didn't go with the
otherwise appealing idea of just letting side-condition discharge
ignore the limit entirely.


# 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.


# c76376ed 29-Apr-2008 Konrad Slind <konrad.slind@gmail.com>

Additional functionality for abbreviations.

1. The labels library has been merged into
markerLib and the src/labels directory eliminated.
2. Have added markerSyntax structure.
3. Operations on abbrevs used to all be in
structure Q, even those that didn't deal
with quotations (like UNABBREV_ALL_TAC). Now
markerLib provides all abbrev. operations and
these take terms. Operations that benefit from
quotes, e.g., ABBREV_TAC, MATCH_ABBREV_TAC, etc.
are still to be found in Q.
4. Abbrevs are kept reduced by the simplifiers and
there is a REABBREV_TAC which can be separately called.
This sorts abbrevs topologically, so that they get
restored in a sensible order.
5. For situations where one wants to get rid of all
abbrevs, apply a tactic, and then restore the abbrevs,
there is WITHOUT_ABBREVS: tactic->tactic.
6. Have added a simple topological sort to Lib.
7. Updated proofs in the src directories, and also
in examples/lambda.


# fa932613 05-Apr-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Added some tactics, EQ-CONV and rules. Also fixed some bugs with adding context and optimised some things.


# 9b8241ae 29-Mar-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Uses the new interface of CONGPROC. Thereby, a bug that occured, when multiple congruence relations in a congruence rule are used, has been eliminated.


# f2f9b533 28-Mar-2006 Thomas Tuerk <Thomas.Tuerk@cl.cam.ac.uk>

Initial revision