lcp [Thu, 18 May 1995 11:51:23 +0200] rev 1123
Krzysztof Grabczewski's (nearly) complete AC proofs
nipkow [Mon, 15 May 1995 09:35:07 +0200] rev 1122
renamed trans_rtrancl to rtrancl_trans and modified it by expanding trans.
nipkow [Sat, 13 May 1995 14:08:24 +0200] rev 1121
Added some lemmas about r^*.
nipkow [Sat, 13 May 1995 13:46:48 +0200] rev 1120
Lambda calculus in de Bruijn notation.
Proof of confluence.
lcp [Thu, 11 May 1995 10:42:19 +0200] rev 1119
Indexing of COMP
lcp [Thu, 11 May 1995 10:38:30 +0200] rev 1118
Indexing of FILTER and COND
lcp [Thu, 11 May 1995 10:33:07 +0200] rev 1117
show_sorts
nipkow [Wed, 10 May 1995 08:38:52 +0200] rev 1116
Modified translation for pattern abstraction.
nipkow [Tue, 09 May 1995 22:10:48 +0200] rev 1115
Moved induct2 from Hoare to Lfp.
nipkow [Tue, 09 May 1995 22:10:08 +0200] rev 1114
Prod is now a parent of Lfp.
Added thm induct2 to Lfp.
Changed the way patterns in abstractions are pretty printed.
It has become simpler now but fails if split has more than one argument
because then the ast-translation does not match.
clasohm [Tue, 09 May 1995 10:43:19 +0200] rev 1113
converted HOL.tex to CHOL.tex; replaced HOL.tex by CHOL.tex
clasohm [Tue, 09 May 1995 10:42:23 +0200] rev 1112
added \CHOL
lcp [Thu, 04 May 1995 14:57:06 +0200] rev 1111
Calls 'rail' program for syntax diagrams
lcp [Thu, 04 May 1995 02:02:54 +0200] rev 1110
Changed some definitions and proofs to use pattern-matching.
lcp [Thu, 04 May 1995 02:02:18 +0200] rev 1109
Changed to use split instead of fsplit. The weakening of fsplitE appears not
to affect existing proofs.
lcp [Thu, 04 May 1995 02:01:49 +0200] rev 1108
case is defined using pattern-matching
lcp [Thu, 04 May 1995 02:01:24 +0200] rev 1107
Modified proofs for new form of 'split'.
lcp [Thu, 04 May 1995 02:00:38 +0200] rev 1106
Added pattern-matching code from CHOL/Prod.thy. Changed
definitions so that split is now defined in terms of fst, snd. Now split is
polymorphic. Deleted fsplit, as split(...)::o gives a similar effect -- NOT
identical though, as fsplit(P,z) implied that z was a pair, while split(P,z)
means only P(fst(z),snd(z)).
lcp [Wed, 03 May 1995 17:38:27 +0200] rev 1105
Modified proofs for (q)split, fst, snd for new
definitions. The rule f(q)splitE is now called (q)splitE and is weaker than
before. The rule '(q)split' is now a meta-equality; this required modifying
all proofs involving e.g. split RS trans.
lcp [Wed, 03 May 1995 17:30:36 +0200] rev 1104
Changed to use split instead of fsplit. The weakening of fsplitE appears not
to affect existing proofs.
lcp [Wed, 03 May 1995 17:22:18 +0200] rev 1103
prove_case_equation now calls uses meta_eq_to_obj_eq to cope
with new form of 'split'. Tried calling simp_tac instead of using resolution
with trans, but it was significantly slower: 98.3 secs instead of 91.2 secs
for ex/Enum.
lcp [Wed, 03 May 1995 16:46:17 +0200] rev 1102
show_sorts:=true forces display of types
lcp [Wed, 03 May 1995 16:30:39 +0200] rev 1101
trivial rewording
lcp [Wed, 03 May 1995 16:10:41 +0200] rev 1100
trivial change
lcp [Wed, 03 May 1995 15:33:40 +0200] rev 1099
Covers wrapper tacticals: setwrapper, ..., addss
clasohm [Wed, 03 May 1995 15:25:30 +0200] rev 1098
fixed bug in thy_unchanged that occurred when the .thy file was changed
but the .ML file hadn't been read before;
tmpfile is now deleted immediatly after reading the .thy file in use_thy
lcp [Wed, 03 May 1995 15:06:41 +0200] rev 1097
Changed definitions so that qsplit is now defined in terms of
qfst, qsnd. AT PRESENT THERE IS NO PATTERN-MATCHING FOR QSPLIT.
lcp [Wed, 03 May 1995 14:54:43 +0200] rev 1096
Modified proofs for (q)split, fst, snd for new
definitions. The rule f(q)splitE is now called (q)splitE and is weaker than
before. The rule '(q)split' is now a meta-equality; this required modifying
all proofs involving e.g. split RS trans.
lcp [Wed, 03 May 1995 14:41:36 +0200] rev 1095
Changed some definitions and proofs to use pattern-matching.
lcp [Wed, 03 May 1995 14:27:51 +0200] rev 1094
Patterns can now be let-bound
lcp [Wed, 03 May 1995 14:17:01 +0200] rev 1093
Changed to use split instead of fsplit. The weakening of fsplitE appears not
to affect existing proofs.
lcp [Wed, 03 May 1995 14:03:19 +0200] rev 1092
Changed some definitions and proofs to use pattern-matching.
lcp [Wed, 03 May 1995 13:55:05 +0200] rev 1091
Changed some definitions and proofs to use pattern-matching.
lcp [Wed, 03 May 1995 13:47:24 +0200] rev 1090
Changed some definitions and proofs to use pattern-matching.
lcp [Wed, 03 May 1995 13:40:19 +0200] rev 1089
Now show_sorts:=true causes printing of types
lcp [Wed, 03 May 1995 13:35:09 +0200] rev 1088
Imported meta_eq_to_obj_eq from HOL for use with 'split'.
clasohm [Wed, 03 May 1995 12:22:17 +0200] rev 1087
replaced store_thm by bind_thm
lcp [Wed, 03 May 1995 12:17:30 +0200] rev 1086
trivial change
lcp [Wed, 03 May 1995 12:09:05 +0200] rev 1085
new version
lcp [Wed, 03 May 1995 12:04:21 +0200] rev 1084
Covers defs and re-ordering of theory sections
lcp [Wed, 03 May 1995 11:58:40 +0200] rev 1083
Updates involving defs, addss, etc.
nipkow [Wed, 03 May 1995 08:58:32 +0200] rev 1082
Simplified layout a little.
nipkow [Wed, 03 May 1995 08:21:53 +0200] rev 1081
Corrected display of split f t: no more let.
Also replaced "_abs" by "_lambda" --- the former was a mistake which
happended to work.
nipkow [Tue, 02 May 1995 19:59:06 +0200] rev 1080
Sections can now be given in any order.
lcp [Mon, 01 May 1995 11:17:41 +0200] rev 1079
Simplified proof of Hausdorff_next_exists.
nipkow [Fri, 28 Apr 1995 15:38:15 +0200] rev 1078
Added
functor f() = struct end
to hide functors to save space.
lcp [Fri, 28 Apr 1995 11:52:43 +0200] rev 1077
Renamed insert_kbrl to insert_tagged_brl and exported it. Now
subgoals_of_brl calls nprems_of, which is faster than length o prems_of.
lcp [Fri, 28 Apr 1995 11:41:59 +0200] rev 1076
Modified proofs for new claset primitives. The problem is that they enforce
the "most recent added rule has priority" policy more strictly now.
lcp [Fri, 28 Apr 1995 11:31:33 +0200] rev 1075
Modified proofs for new claset primitives. The problem is that they enforce
the "most recent added rule has priority" policy more strictly now.
lcp [Fri, 28 Apr 1995 11:24:32 +0200] rev 1074
Modified proofs for new claset primitives. The problem is that they enforce
the "most recent added rule has priority" policy more strictly now.
lcp [Fri, 28 Apr 1995 10:57:40 +0200] rev 1073
Recoded addSIs, etc., so that nets are built incrementally
instead of from scratch each time. The old approach used excessive time (>1
sec for adding a rule to ZF_cs) and probably excessive space. Now rep_claset
includes all record fields. joinrules no longer sorts the rules on number of
subgoals, since it does not see the full set of them; instead the number of
subgoals modifies the priority.
lcp [Tue, 25 Apr 1995 11:14:03 +0200] rev 1072
updated version
lcp [Tue, 25 Apr 1995 11:06:52 +0200] rev 1071
Simple updates for compatibility with KG
lcp [Tue, 25 Apr 1995 11:01:57 +0200] rev 1070
Simplified, removing needless theorems about lambda.
lcp [Tue, 25 Apr 1995 10:56:49 +0200] rev 1069
Now loads the theory "Let". Could add it to FOL, but this appears to
be incompatible with CCL.
nipkow [Sat, 22 Apr 1995 13:25:31 +0200] rev 1068
HOL.thy:
"@" is no longer introduced as a "binder" but has its own explicit
translation rule "@x.b" == "Eps(%x.b)". If x is a proper pattern, further
translation rules for abstractions with patterns take care of the rest. This
is very modular and avoids problems with "binders" such as "!" mentioned
below.
let now allows pttrn (let (x,y) = t in u) instead of just idt (let x = t in u)
Set.thy:
UN, INT, ALL, EX, etc all use "pttrn" instead of idt. Same change as for "@"
above, except that "@" was a "binder" originally.
Prod.thy:
Added new syntax for pttrn which allows arbitrarily nested tuples. Two
translation rules take care of %pttrn. Unfortunately they cannot be
reversed. Hence a little ML-code is used as well.
Note that now "! (x,y). ..." is syntactically valid but leads to a
translation error. This is because "!" is introduced as a "binder" which
means that its translation into lambda-terms is not done by a rewrite rule
(aka macro) but by some fixed ML-code which comes after the rewriting stage
and does not know how to handle patterns. This looks like a minor blemish
since patterns in unbounded quantifiers are not that useful (well, except
maybe in unique existence ...). Ideally, there should be two syntactic
categories:
idts, as we know and love it, which does not admit patterns.
patterns, which is what idts has become now.
There is one more point where patterns are now allowed but don't make sense:
{e | idts . P}
where idts is the list of local variables.
Univ.thy: converted the defs for <++> and <**> into pattern form. It worked
perfectly.
nipkow [Sat, 22 Apr 1995 12:21:41 +0200] rev 1067
I have modified the grammar for idts (sequences of identifiers with optional
type annotations). idts are generally used as in abstractions, be it
lambda-abstraction or quantifiers. It now has roughly the form
idts = pttrn*
pttrn = idt
where pttrn is a new nonterminal (type) not used anywhere else.
This means that the Pure syntax for idts is in fact unchanged.
The point is that the new nontermianl pttrn allows later extensions of this
syntax. (See, for example, HOL/Prod.thy).
The name idts is not quite accurate any longer and may become downright
confusing once pttrn has been extended. Something should be done about this,
in particular wrt to the manual.
nipkow [Wed, 19 Apr 1995 19:15:29 +0200] rev 1066
Simplified proofs thanks to addss.
nipkow [Sun, 16 Apr 1995 11:59:44 +0200] rev 1065
Fixed old bug in the simplifier. Term to be simplified now carries around its
maxidx. Needed for renaming rewrite or congruence rules. maxidx should be ~1
in most cases (ie no Vars), hence reasonable overhead.
nipkow [Sun, 16 Apr 1995 11:56:11 +0200] rev 1064
Fixed bug.