Fri, 22 Dec 1995 11:09:28 +0100 Improving space efficiency of inductive/datatype definitions.
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.
Fri, 22 Dec 1995 10:48:59 +0100 Addition of compression, that is, sharing.
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.
Fri, 22 Dec 1995 10:38:27 +0100 Commented the datatype declaration of thm.
paulson [Fri, 22 Dec 1995 10:38:27 +0100] rev 1416
Commented the datatype declaration of thm. Declared compress: thm -> thm to copy a thm and maximize sharing in it. "ext_axms" now calls Term.compress_term so that stored axioms use sharing.
(0) -1000 -300 -100 -30 -10 -3 +3 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip