History log of /seL4-l4v-10.1.1/HOL4/examples/lambda/basics/nomdatatype.sml
Revision Date Author Comments
# 732b9f9e 04-May-2012 Michael Norrish <Michael.Norrish@nicta.com.au>

Extra parameter for new_type command in nomdatatype allowing for multi-types.

Doesn't work unless each 'type' allows a 'VAR' constructor, which is not the case
in first order formulas and terms, for example.


# 56f9af67 08-Apr-2012 Michael Norrish <Michael.Norrish@nicta.com.au>

General code for automatically proving type-bijection results in src/1.

This code was already used in the prototypical nominal datatype
package code; now it's more generally available. The code implements
one big function (for the moment) that proves all the nice results
(various rewrite rules) that are immediate consequences of the usual
type bijection theorem. In addition, the function defines the abs-rep
constants with stereotyped names.


# bc294d17 02-Sep-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Extract a usable half-way point from nominal_datatype branch.

This replaces the is_perm predicate with a type embodying that predicate.
It doesn't include the subsequent work on allowing multiple 'atom' types.


# 25da727d 24-Jul-2011 Michael Norrish <Michael.Norrish@nicta.com.au>

Terms and labelled terms now derived from generic terms.

This is a big change that points to the implementation of a complete
nominal datatype package. The use of generic terms means that we only
need to do one hairy quotient, and one hairy derivation of a recursion
principle.

The recursion principle in question features a new "FCB" (one of the
side-conditions that need to be proved in order to get a recursive
function admitted). Though I think it's better, it can be a little
fiddlier to prove. It's also stronger, so in theory, there may be
reasonable functions that the new FCB rejects. It should certainly be
possible to automate the bulk of the new fiddly proofs.