nipkow [Fri, 22 Dec 1995 12:25:20 +0100] rev 1419
defined take/drop by induction over list rather than nat.
paulson [Fri, 22 Dec 1995 11:09:28 +0100] rev 1418
Improving space efficiency of inductive/datatype definitions.
Reduce usage of "open" and change struct open X; D end to
let open X in struct D end end whenever possible -- removes X from the final
structure. Especially needed for functors Intr_elim and Indrule.
intr_elim.ML and constructor.ML now use a common Su.free_SEs instead of
generating a new one. Inductive defs no longer export sumprod_free_SEs
ZF/intr_elim: Removed unfold:thm from signature INTR_ELIM.
It is never used outside, is easily recovered using
bnd_mono and def_lfp_Tarski, and takes up considerable store.
Moved raw_induct and rec_names to separate signature INTR_ELIM_AUX, for items
no longer exported.
mutual_induct is simply "True" unless it is going to be
significantly different from induct -- either because there is mutual
recursion or because it involves tuples.
paulson [Fri, 22 Dec 1995 10:48:59 +0100] rev 1417
Addition of compression, that is, sharing.
Uses refs and Symtab (binary search trees) to get reasonable speed.
Types and terms can be compressed.