History log of /seL4-l4v-master/HOL4/src/1/TypeBase.sig
Revision Date Author Comments
# 983cd8f5 02-Nov-2020 Michael Norrish <michael.norrish@data61.csiro.au>

Provide more ancestry-based entrypoints for stateful simpsets

In particular, allow for recreation of the simpset as it existed on
theory entry. E.g., a call to

recreate_sset_at_parentage (parents "list")

will make the simpset take on its value as it existed when execution
of the listScript began.


# bcf6c870 01-Nov-2020 Michael Norrish <michael.norrish@data61.csiro.au>

Make TypeBase ancestry-aware

The fix to Boolify/src/Encode.sml attempts to be semantics-preserving,
but there are no test-cases for this code.


# 2d8bef7a 18-Nov-2019 Michael Norrish <Michael.Norrish@nicta.com.au>

Improve TypeBase API for reporting on record fields

Datatype code now bypasses treatment of "big records". This stuff can
all be deleted and I will be happy to see it go as it is horrifically
complicated, and usually only serves to confuse users.

Thanks to a CakeML Slack discussion for the push to make the API
change.


# 72731872 25-Jul-2019 Michael Norrish <Michael.Norrish@nicta.com.au>

Update TypeBase to allow updating of induction & axiom theorems

These changes persist (are exported to theory files).


# 1795b9e9 07-Jun-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement easier API entrypoints to get at case_eq theorems

Closes #345


# e9162b73 09-Apr-2018 Michael Norrish <Michael.Norrish@nicta.com.au>

Implement code to load/save tyinfos into/out-of TypeBase's database


# 0b018443 11-Dec-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Rename TypeBase entrypoints for caseeqsplit and friends

Now use case_eq everywhere.

Work on github issue #345


# 962f50c1 29-Nov-2017 Michael Norrish <Michael.Norrish@nicta.com.au>

Automatically prove "case-eqsplit" theorems and store in TypeBase

For :num, this theorem looks like

(num_CASE n zc sc = v) <=>
(n = 0) ∧ (zc = v) ∨ ∃x. (n = SUC x) ∧ (sc x = v)

Such theorems can be powerful rewrites when (large) case-expressions
are asserted to be equal to some value or other.

These theorems have to be installed somewhat by hand for early types,
but from list onwards, the Datatype package handles this. This work
leverages earlier work done implementing prove_case_eq_thm (8f16922426).

Take the opportunity to rework TypeBasePure's code to use
FunctionalRecordUpdate.

This is progress with github issue #345.


# be58d73a 15-Feb-2013 Thomas Tuerk <tt291@cl.cam.ac.uk>

execute several heuristics for pattern-matching and choose the best result
interface of pattern matching simplified


# 7cc76829 08-Feb-2013 Thomas Tuerk <tt291@cl.cam.ac.uk>

started with writing more complex pattern match heuristics


# 5f460cae 22-Nov-2012 Anthony Fox <anthony.fox@cl.cam.ac.uk>

Avoid clunky call mechanism for mk_pattern_fn.


# 5f7d3df2 05-Oct-2011 Konrad Slind <konrad.slind@gmail.com>

Uncovered simple support in TypeBase. Also refined the notion
of "subterm" in the guesser for termination relations in Define.
Now x.fld is a subterm of record term x, which should automate
termination of simple recursions through record fields.


# 6cac8296 07-Mar-2011 Konrad Slind <konrad.slind@gmail.com>

Addition of destructors and recognizers for datatypes.
So far, I've just got basic support put in.

Some other trivial mods as well.


# 1bc9f344 13-Jan-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Change src/bool to src/1 as a prelude to experimentation!