0
|
1 |
EDITS TO THE ISABELLE SYSTEM FOR 1993
|
|
2 |
|
|
3 |
11 January
|
|
4 |
|
|
5 |
*/README: Eliminated references to Makefile.NJ, which no longer exists.
|
|
6 |
|
|
7 |
**** New tar file placed on /homes/lcp (464K) ****
|
|
8 |
|
|
9 |
14 January
|
|
10 |
|
|
11 |
Provers/simp/pr_goal_lhs: now distinct from pr_goal_concl so that tracing
|
|
12 |
prints conditions correctly.
|
|
13 |
|
|
14 |
{CTT/arith,HOL/ex/arith/ZF/arith}/add_mult_distrib: renamed from
|
|
15 |
add_mult_dist, to agree with the other _distrib rules
|
|
16 |
|
|
17 |
20 January
|
|
18 |
|
|
19 |
Pure/Syntax/type_ext.ML: "I have fixed a few anomalies in the pretty
|
|
20 |
printing annotations for types. Only the layout has changed." -- Toby
|
|
21 |
|
|
22 |
21 January
|
|
23 |
|
|
24 |
{CTT/arith,HOL/ex/arith/ZF/arith}/add_inverse_diff: renamed to add_diff_inverse
|
|
25 |
|
|
26 |
22 January
|
|
27 |
|
|
28 |
ZF/ex/equiv: new theory of equivalence classes
|
|
29 |
ZF/ex/integ: new theory of integers
|
|
30 |
HOL/set.thy: added indentation of 3 to all binding operators
|
|
31 |
|
|
32 |
ZF/bool/boolI0,boolI1: renamed as bool_0I, bool_1I
|
|
33 |
|
|
34 |
25 January
|
|
35 |
|
|
36 |
MAKE-ALL (NJ 0.75) ran perfectly. It took 3:19 hours!?
|
|
37 |
|
|
38 |
ZF/bool/not,and,or,xor: new
|
|
39 |
|
|
40 |
27 January
|
|
41 |
|
|
42 |
ZF/ex/bin: new theory of binary integer arithmetic
|
|
43 |
|
|
44 |
27 January
|
|
45 |
|
|
46 |
MAKE-ALL (Poly/ML) ran perfectly. It took 6:33 hours???
|
|
47 |
(ZF took almost 5 hours!)
|
|
48 |
|
|
49 |
**** New tar file placed on /homes/lcp (472K) ****
|
|
50 |
|
|
51 |
HOL/set/UN_cong,INT_cong: new
|
|
52 |
HOL/subset/mem_rews,set_congs,set_ss: new
|
|
53 |
HOL/simpdata/o_apply: new; added to HOL_ss
|
|
54 |
|
|
55 |
29 January
|
|
56 |
|
|
57 |
Pure/Thy/syntax/mk_structure: the dummy theory created by type infixes is
|
|
58 |
now called name^"(type infix)" instead of "", avoid triggering a spurious
|
|
59 |
error "Attempt to merge different versions of theory: " in
|
|
60 |
Pure/sign/merge_stamps
|
|
61 |
|
|
62 |
2 February
|
|
63 |
|
|
64 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:48 hours. Runs in 1992 took
|
|
65 |
under 2:20 hours, but the new files in ZF/ex take time: nearly 23 minutes
|
|
66 |
according to make10836.log.
|
|
67 |
|
|
68 |
Pure/Thy/scan/comment: renamed from komt
|
|
69 |
Pure/Thy/scan/numeric: renamed from zahl
|
|
70 |
|
|
71 |
Pure/Syntax/syntax,lexicon,type_ext,extension,sextension: modified by
|
|
72 |
Tobias to change ID, TVAR, ... to lower case.
|
|
73 |
|
|
74 |
Cube/cube.thy,HOL/hol.thy,HOL/set.thy,CTT/ctt.thy,LK/lk.thy,ZF/zf.thy: now
|
|
75 |
with ID, ... in lower case and other tidying
|
|
76 |
|
|
77 |
3 February
|
|
78 |
|
|
79 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:50 hours.
|
|
80 |
|
|
81 |
4 February
|
|
82 |
|
|
83 |
HOL/nat/nat_ss: now includes the rule Suc_less_eq: (Suc(m) < Suc(n)) = (m<n)
|
|
84 |
and the nat_case rules and congruence rules
|
|
85 |
|
|
86 |
HOL/sum/sumE: now has the "strong" form with equality assumptions. WAS
|
|
87 |
val prems = goalw Sum.thy [Inl_def,Inr_def]
|
|
88 |
"[| !!x::'a. P(Inl(x)); !!y::'b. P(Inr(y)) \
|
|
89 |
\ |] ==> P(s)";
|
|
90 |
by (res_inst_tac [("t","s")] (Rep_Sum_inverse RS subst) 1);
|
|
91 |
by (rtac (rewrite_rule [Sum_def] Rep_Sum RS CollectE) 1);
|
|
92 |
by (REPEAT (eresolve_tac [disjE,exE,ssubst] 1 ORELSE resolve_tac prems 1));
|
|
93 |
val sumE = result();
|
|
94 |
|
|
95 |
8 February
|
|
96 |
|
|
97 |
Changes from Tobias:
|
|
98 |
Pure/Thy/parse: now list_of admits the empty phrase, while listof_1 does not
|
|
99 |
Pure/Thy/syntax: uses new list_of, list_of1
|
|
100 |
|
|
101 |
9 February
|
|
102 |
|
|
103 |
HOL/ex/arith: moved to main HOL directory
|
|
104 |
HOL/prod: now define the type "unit" and constant "(): unit"
|
|
105 |
|
|
106 |
11 February
|
|
107 |
|
|
108 |
HOL/arith: eliminated redefinitions of nat_ss and arith_ss
|
|
109 |
|
|
110 |
12 February
|
|
111 |
|
|
112 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:50 hours.
|
|
113 |
|
|
114 |
Pure/Thy/scan/string: now correctly recognizes ML-style strings.
|
|
115 |
|
|
116 |
15 February
|
|
117 |
|
|
118 |
MAKE-ALL (NJ 0.75) ran perfectly. It took 1:37 hours (on albatross)
|
|
119 |
MAKE-ALL (NJ 0.75) ran perfectly. It took 2:42 hours (on dunlin)
|
|
120 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:53 hours (on dunlin)
|
|
121 |
|
|
122 |
**** New tar file placed on /homes/lcp (480K) ****
|
|
123 |
|
|
124 |
18 February
|
|
125 |
|
|
126 |
Pure/Syntax/earley0A/compile_xgram: Tobias deleted the third argument, as
|
|
127 |
it was unused.
|
|
128 |
|
|
129 |
Pure/Syntax/earley0A: modified accordingly.
|
|
130 |
|
|
131 |
19 February
|
|
132 |
|
|
133 |
MAKE-ALL (NJ 0.75) ran perfectly. It took 3:37 hours
|
|
134 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:52 hours
|
|
135 |
|
|
136 |
**** New tar file placed on /homes/lcp (480K) ****
|
|
137 |
|
|
138 |
20 February
|
|
139 |
|
|
140 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 3:30 hours
|
|
141 |
|
|
142 |
10 March
|
|
143 |
|
|
144 |
HOL/fun/image_eqI: fixed bad pattern
|
|
145 |
|
|
146 |
11 March
|
|
147 |
|
|
148 |
MAKE-ALL (Poly/ML) failed in HOL!
|
|
149 |
|
|
150 |
HOL/fun: moved "mono" proofs to HOL/subset, since they rely on subset laws
|
|
151 |
of Int and Un.
|
|
152 |
|
|
153 |
12 March
|
|
154 |
|
|
155 |
ZF/ex/misc: new example from Bledsoe
|
|
156 |
|
|
157 |
15 March
|
|
158 |
|
|
159 |
ZF/perm: two new theorems inspired by Pastre
|
|
160 |
|
|
161 |
16 March
|
|
162 |
|
|
163 |
Weakened congruence rules for HOL: speeds simplification considerably by
|
|
164 |
NOT simplifying the body of a conditional or eliminator.
|
|
165 |
|
|
166 |
HOL/simpdata/mk_weak_congs: new, to make weakened congruence rules
|
|
167 |
|
|
168 |
HOL/simpdata/congs: renamed HOL_congs and weakened the "if" rule
|
|
169 |
|
|
170 |
HOL/simpdata/HOL_congs: now contains polymorphic rules for the overloaded
|
|
171 |
operators < and <=
|
|
172 |
|
|
173 |
HOL/prod: weakened the congruence rule for split
|
|
174 |
HOL/sum: weakened the congruence rule for case
|
|
175 |
HOL/nat: weakened the congruence rule for nat_case and nat_rec
|
|
176 |
HOL/list: weakened the congruence rule for List_rec and list_rec
|
|
177 |
|
|
178 |
HOL & test rebuilt perfectly
|
|
179 |
|
|
180 |
Pure/goals/prepare_proof/mkresult: fixed bug in signature check. Now
|
|
181 |
compares the FINAL signature with that from the original theory.
|
|
182 |
|
|
183 |
Pure/goals/prepare_proof: ensures that [prove_]goalw checks that the
|
|
184 |
definitions do not update the proof state.
|
|
185 |
|
|
186 |
17 March
|
|
187 |
|
|
188 |
MAKE-ALL (Poly/ML) ran perfectly.
|
|
189 |
|
|
190 |
18 March
|
|
191 |
|
|
192 |
MAKE-ALL (Poly/ML) failed in HOL/ex/Substitutions
|
|
193 |
|
|
194 |
HOL/ex/Subst/setplus: changed Set.thy to Setplus.thy where
|
|
195 |
necessary
|
|
196 |
|
|
197 |
ZF/perm: proved some rules about inj and surj
|
|
198 |
|
|
199 |
ZF/ex/misc: did some of Pastre's examples
|
|
200 |
|
|
201 |
Pure/library/gen_ins,gen_union: new
|
|
202 |
|
|
203 |
HOL/ex/Subst/subst: renamed rangeE to srangeE
|
|
204 |
|
|
205 |
18 March
|
|
206 |
|
|
207 |
MAKE-ALL (Poly/ML) failed in HOL/ex/term due to renaming of list_ss in
|
|
208 |
ex/Subst/alist
|
|
209 |
|
|
210 |
HOL/list/list_congs: new; re-organized simpsets a bit
|
|
211 |
|
|
212 |
Pure/goals/sign_error: new
|
|
213 |
|
|
214 |
Pure/goals/prepare_proof,by_com: now print the list of new theories when
|
|
215 |
the signature of the proof state changes
|
|
216 |
|
|
217 |
HOL/prod,sexp: renamed fst, snd to fst_conv, snd_conv to avoid over-writing
|
|
218 |
the library functions fst, snd
|
|
219 |
|
|
220 |
HOL/fun/image_compose: new
|
|
221 |
|
|
222 |
21 March
|
|
223 |
|
|
224 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 3:50 hours
|
|
225 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:21 hours
|
|
226 |
Much slower now (about 30 minutes!) because of HOL/ex/Subst
|
|
227 |
|
|
228 |
**** New tar file placed on /homes/lcp (504K) ****
|
|
229 |
|
|
230 |
ZF/pair,simpdata: renamed fst, snd to fst_conv, snd_conv to avoid over-writing
|
|
231 |
the library functions fst, snd
|
|
232 |
|
|
233 |
HOL/prod/prod_fun_imageI,E: new
|
|
234 |
|
|
235 |
HOL/ex/Subst/Unify: renamed to Unifier to avoid clobbering structure Unify
|
|
236 |
of Pure
|
|
237 |
|
|
238 |
24 March
|
|
239 |
|
|
240 |
HOL/trancl/comp_subset_Sigma: new
|
|
241 |
HOL/wf/wfI: new
|
|
242 |
|
|
243 |
HOL/Subst: moved from HOL/ex/Subst to shorten pathnames
|
|
244 |
HOL/Makefile: target 'test' now loads Subst/ROOT separately
|
|
245 |
|
|
246 |
*** Installation of gfp, coinduction, ... to HOL ***
|
|
247 |
|
|
248 |
HOL/gfp,llist: new
|
|
249 |
HOL/univ,sexp,list: replaced with new version
|
|
250 |
|
|
251 |
Sexp is now the set of all well-founded trees, each of type 'a node set.
|
|
252 |
There is no longer a type 'sexp'. Initial algebras require more explicit
|
|
253 |
type checking than before. Defining a type 'sexp' would eliminate this,
|
|
254 |
but would also require a whole new set of primitives, similar to those
|
|
255 |
defined in univ.thy but restricted to well-founded trees.
|
|
256 |
|
|
257 |
25 March
|
|
258 |
|
|
259 |
Pure/thm: renamed 'bires' to 'eres' in many places (not exported) --
|
|
260 |
biresolution now refers to resolution with (flag,rule) pairs.
|
|
261 |
|
|
262 |
Pure/thm/bicompose_aux: SOUNDNESS BUG concerning variable renaming. A Var in
|
|
263 |
a premise was getting renamed when its occurrence in the flexflex pairs was
|
|
264 |
not. Martin Coen supplied the following proof of True=False in HOL:
|
|
265 |
|
|
266 |
val [prem] = goal Set.thy "EX a:{c}.p=a ==> p=c";
|
|
267 |
br (prem RS bexE) 1; be ssubst 1; be singletonD 1;
|
|
268 |
val l1 = result();
|
|
269 |
|
|
270 |
val rls = [refl] RL [bexI] RL [l1];
|
|
271 |
|
|
272 |
goal Set.thy "True = False";
|
|
273 |
brs rls 1; br singletonI 1;
|
|
274 |
result();
|
|
275 |
|
|
276 |
Marcus Moore noted that the error only occurred with
|
|
277 |
Logic.auto_rename:=false. Elements of the fix:
|
|
278 |
|
|
279 |
1. rename_bvs, rename_bvars and bicompose_aux/newAs take tpairs (the
|
|
280 |
existing flex-flex pairs) as an extra argument. rename_bvs preserves all
|
|
281 |
Vars in tpairs.
|
|
282 |
|
|
283 |
2. bicompose_aux/tryasms and res now unpack the "cell" and supply its tpairs
|
|
284 |
to newAs.
|
|
285 |
|
|
286 |
HOL/lfp,gfp,ex/set: renamed Tarski to lfp_Tarski
|
|
287 |
|
|
288 |
HOL/lfp,list,llist,nat,sexp,trancl,Subst/uterm,ex/simult,ex/term: renamed
|
|
289 |
def_Tarski to def_lfp_Tarski
|
|
290 |
|
|
291 |
26 March
|
|
292 |
|
|
293 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 4:25 hours!
|
|
294 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:54 hours! (jobs overlapped)
|
|
295 |
|
|
296 |
Pure/Thy/scan/is_digit,is_letter: deleted. They are already in
|
|
297 |
Pure/library, and these versions used non-Standard string comparisons!
|
|
298 |
|
|
299 |
Repairing a fault reported by David Aspinall:
|
|
300 |
show_types := true; read "a"; (* followed by 'prin it' for NJ *)
|
|
301 |
Raises exception LIST "hd". Also has the side effect of leaving
|
|
302 |
show_types set at false.
|
|
303 |
|
|
304 |
Pure/goals/read: no longer creates a null TVar
|
|
305 |
Pure/Syntax/lexicon/string_of_vname: now handles null names
|
|
306 |
Pure/Syntax/printer/string_of_typ: tidied
|
|
307 |
|
|
308 |
/usr/groups/theory/isabelle/92/Pure/thm: replaced by new version to fix bug
|
|
309 |
MAKE-ALL on this directory ran perfectly
|
|
310 |
/usr/groups/theory/ml-aftp/Isabelle92.tar.Z: replaced by new version
|
|
311 |
|
|
312 |
29 March
|
|
313 |
|
|
314 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 4:14 hours!
|
|
315 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:43 hours!
|
|
316 |
|
|
317 |
**** New tar file placed on /homes/lcp (518K) ****
|
|
318 |
|
|
319 |
30 March
|
|
320 |
|
|
321 |
ZF/univ/cons_in_Vfrom: deleted "[| a: Vfrom(A,i); b<=Vfrom(A,i) |] ==>
|
|
322 |
cons(a,b) : Vfrom(A,succ(i))" since it was useless.
|
|
323 |
|
|
324 |
8 April
|
|
325 |
|
|
326 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:49 hours!
|
|
327 |
|
|
328 |
**** New tar file placed on /homes/lcp (520K) ****
|
|
329 |
|
|
330 |
**** Updates for pattern unification (Tobias Nipkow) ****
|
|
331 |
|
|
332 |
Pure/pattern.ML: new, pattern unification
|
|
333 |
|
|
334 |
Pure/Makefile and ROOT.ML: included pattern.ML
|
|
335 |
|
|
336 |
Pure/library.ML: added predicate downto0
|
|
337 |
|
|
338 |
Pure/unify.ML: call pattern unification first. Removed call to could_unify.
|
|
339 |
|
|
340 |
FOL/Makefile/FILES: now mentions ifol.ML (previously repeated fol.ML instead)
|
|
341 |
|
|
342 |
**** Installation of Martin Coen's FOLP (FOL + proof objects) ****
|
|
343 |
|
|
344 |
renamed PFOL, PIFOL to FOLP, IFOLP, etc.
|
|
345 |
|
|
346 |
9 April
|
|
347 |
|
|
348 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 4:05 hours!
|
|
349 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:31 hours!
|
|
350 |
|
|
351 |
**** New tar file placed on /homes/lcp (576K) ****
|
|
352 |
|
|
353 |
**** Installation of Discrimination Nets ****
|
|
354 |
|
|
355 |
*Affected files (those mentioning Stringtree, compat_thms or rtr_resolve_tac)
|
|
356 |
Pure/ROOT.ML,goals.ML,stringtree.ML,tactic.ML
|
|
357 |
Provers/simp.ML
|
|
358 |
HOL/ex/meson.ML
|
|
359 |
|
|
360 |
*Affected files (those mentioning compat_resolve_tac)
|
|
361 |
Pure/tactic.ML
|
|
362 |
Provers/typedsimp.ML
|
|
363 |
CTT/ctt.ML
|
|
364 |
|
|
365 |
Pure/stringtree: saved on Isabelle/old
|
|
366 |
Pure/net: new
|
|
367 |
Pure/Makefile/FILES: now mentions net.ML, not stringtree.ML
|
|
368 |
Pure/ROOT: now mentions net.ML, not stringtree.ML
|
|
369 |
|
|
370 |
Pure/goals/compat_goal: DELETED
|
|
371 |
|
|
372 |
Pure/tactic/compat_thms,rtr_resolve_tac,compat_resolve_tac,insert_thm,
|
|
373 |
delete_thm,head_string: DELETED
|
|
374 |
|
|
375 |
Pure/tactic/biresolve_from_nets_tac, bimatch_from_nets_tac,
|
|
376 |
net_biresolve_tac, net_bimatch_tac, resolve_from_net_tac, match_from_net_tac,
|
|
377 |
net_resolve_tac, net_match_tac: NEW
|
|
378 |
|
|
379 |
Pure/tactic/filt_resolve_tac: new implementation using nets!
|
|
380 |
|
|
381 |
Provers/simp: replaced by new version
|
|
382 |
|
|
383 |
Provers/typedsimp: changed compat_resolve_tac to filt_resolve_tac and
|
|
384 |
updated comments
|
|
385 |
|
|
386 |
CTT/ctt.ML: changed compat_resolve_tac to filt_resolve_tac
|
|
387 |
ZF/simpdata/typechk_step_tac: changed compat_resolve_tac to filt_resolve_tac
|
|
388 |
|
|
389 |
CTT tested
|
|
390 |
|
|
391 |
HOL/ex/meson/ins_term,has_reps: replaced Stringtree by Net
|
|
392 |
|
|
393 |
FOL tested
|
|
394 |
|
|
395 |
Provers/simp/cong_const: new, replaces head_string call in cong_consts
|
|
396 |
Provers/simp: renamed variables: atomic to at and cong_consts to ccs
|
|
397 |
|
|
398 |
ZF/ex/bin/integ_of_bin_type: proof required reordering of rules --
|
|
399 |
typechk_tac now respects this ordering!
|
|
400 |
|
|
401 |
ZF tested
|
|
402 |
|
|
403 |
DOCUMENTATION
|
|
404 |
|
|
405 |
Logics/CTT: Removed mention of compat_resolve_tac
|
|
406 |
Ref/goals: deleted compat_goal's entry
|
|
407 |
|
|
408 |
Provers/hypsubst/lasthyp_subst_tac: deleted
|
|
409 |
|
|
410 |
FOLP/ROOT/dest_eq: corrected; now hyp_subst_tac works!
|
|
411 |
|
|
412 |
12 April
|
|
413 |
|
|
414 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 4:03 hours!
|
|
415 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:28 hours!
|
|
416 |
|
|
417 |
FOLP/{int-prover,classical}/safe_step_tac: uses eq_assume_tac, not assume_tac
|
|
418 |
FOLP/{int-prover,classical}/inst_step_tac: restored, calls assume and mp_tac
|
|
419 |
FOLP/{int-prover,classical}/step_tac: calls inst_step_tac
|
|
420 |
|
|
421 |
{FOL,FOLP}/int-prover/safe_brls: removed (asm_rl,true) since assume_tac is
|
|
422 |
used explicitly!!
|
|
423 |
|
|
424 |
FOLP/ifolp/uniq_assume_tac: new, since eq_assume_tac is almost useless
|
|
425 |
|
|
426 |
FOLP/{int-prover,classical}/uniq_mp_tac: replace eq_mp_tac and call
|
|
427 |
uniq_assume_tac
|
|
428 |
|
|
429 |
Provers/classical: REPLACED BY 'NET' VERSION!
|
|
430 |
|
|
431 |
13 April
|
|
432 |
|
|
433 |
MAKE-ALL (Poly/ML) failed in ZF and ran out of quota for Cube.
|
|
434 |
|
|
435 |
Unification bug (nothing to do with pattern unification)
|
|
436 |
Cleaning of flex-flex pairs attempts to remove all occurrences of bound
|
|
437 |
variables not common to both sides. Arguments containing "banned" bound
|
|
438 |
variables are deleted -- but this should ONLY be done if the occurrence is
|
|
439 |
rigid!
|
|
440 |
|
|
441 |
unify/CHANGE_FAIL: new, for flexible occurrence of bound variable
|
|
442 |
unify/change_bnos: now takes "flex" as argument, indicating path status
|
|
443 |
|
|
444 |
14 April
|
|
445 |
|
|
446 |
MAKE-ALL (Poly/ML) failed in HOL (ASM_SIMP_TAC redefined!) and LK
|
|
447 |
|
|
448 |
LK/ex/hard-quant/37: added "by flexflex_tac" to compensate for flexflex
|
|
449 |
changes
|
|
450 |
|
|
451 |
Pure/goals/gethyps: now calls METAHYPS directly
|
|
452 |
|
|
453 |
rm-logfiles: no longer mentions directories. WAS
|
|
454 |
rm log {Pure,FOL,ZF,LCF,CTT,LK,Modal,HOL,Cube}/make*.log
|
|
455 |
rm {FOL,ZF,LCF,CTT,LK,Modal,HOL,Cube}/test
|
|
456 |
rm {FOL,ZF,LCF,CTT,LK,Modal,HOL,Cube}/.*.thy.ML
|
|
457 |
rm {FOL,ZF,HOL}/ex/.*.thy.ML
|
|
458 |
|
|
459 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:39 hours! (albatross)
|
|
460 |
|
|
461 |
New version of simp on Isabelle/new -- instantiates unknowns provided only
|
|
462 |
one rule may do so [SINCE REJECTED DUE TO UNPREDICTABLE BEHAVIOR]
|
|
463 |
|
|
464 |
works with FOLP/ex/nat, but in general could fail in the event of
|
|
465 |
overlapping rewrite rules, since FOLP always instantiates unknowns during
|
|
466 |
rewriting.
|
|
467 |
|
|
468 |
ZF: tested with new version
|
|
469 |
|
|
470 |
HOL: tested with new version, appeared to loop in llist/Lmap_ident
|
|
471 |
|
|
472 |
**** NEW VERSION OF ASM_SIMP_TAC, WITH METAHYPS ****
|
|
473 |
|
|
474 |
ZF: failed in perm/comp_mem_injD1: the rule anti_refl_rew is too ambiguous!
|
|
475 |
ZF/wfrec: all uses of wf_ss' require
|
|
476 |
by (METAHYPS (fn hyps => cut_facts_tac hyps 1 THEN
|
|
477 |
SIMP_TAC (wf_ss' addrews (hyps)) 1) 1);
|
|
478 |
|
|
479 |
ZF/epsilon/eclose_least: changed ASM_SIMP_TAC to SIMP_TAC; this makes
|
|
480 |
METAHYPS version work
|
|
481 |
|
|
482 |
ZF/arith/add_not_less_self: adds anti_refl_rew
|
|
483 |
|
|
484 |
ZF/ex/prop-log/hyps_finite: the use of UN_I is very bad -- too undirected.
|
|
485 |
Swapping the premises of UN_I would probably allow instantiation.
|
|
486 |
|
|
487 |
ZF otherwise seems to work!
|
|
488 |
|
|
489 |
HOL/llist/llistE: loops! due to rewriting by Rep_LList_LCons of Vars
|
|
490 |
|
|
491 |
HOL/ex/prop-log/comp_lemma: failed due to uninstantiated Var in
|
|
492 |
(CCONTR_rule RS allI)
|
|
493 |
|
|
494 |
*** REJECTED
|
|
495 |
|
|
496 |
15 April
|
|
497 |
|
|
498 |
These overnight runs involve Provers/simp.ML with old treatment of rules
|
|
499 |
(match_tac) and no METAHYPS; they test the new flexflex pairs and
|
|
500 |
discrimination nets, to see whether it runs faster.
|
|
501 |
|
|
502 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 3:39 hours (4 mins faster)
|
|
503 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:23 hours (5 mins faster)
|
|
504 |
|
|
505 |
ZF/simpdata/ZF_ss: deleted anti_refl_rew; non-linear patterns slow down
|
|
506 |
discrimination nets (and this rewrite used only ONCE)
|
|
507 |
|
|
508 |
ZF/mem_not_refl: new; replaces obsolete anti_refl_rew
|
|
509 |
|
|
510 |
**Timing experiments**
|
|
511 |
|
|
512 |
fun HYP_SIMP_TAC ss = METAHYPS (fn hyps => HOL_SIMP_TAC (ss addrews hyps) 1);
|
|
513 |
|
|
514 |
On large examples such as ...
|
|
515 |
HOL/arith/mod_quo_equality
|
|
516 |
HOL/llist/LListD_implies_ntrunc_equality
|
|
517 |
ZF/ex/bin/integ_of_bin_succ
|
|
518 |
... it is 1.5 to 3 times faster than ASM_SIMP_TAC. But cannot replace
|
|
519 |
ASM_SIMP_TAC since the auto_tac sometimes fails due to lack of assumptions.
|
|
520 |
If there are few assumptions then HYP_SIMP_TAC is no better.
|
|
521 |
|
|
522 |
Pure/Makefile: now copies $(ML_DBASE) to $(BIN)/Pure instead of calling
|
|
523 |
make_database, so that users can call make_database for their object-logics.
|
|
524 |
|
|
525 |
Pure/tctical/SELECT_GOAL: now does nothing if i=1 and there is
|
|
526 |
only one subgoal.
|
|
527 |
|
|
528 |
19 April
|
|
529 |
|
|
530 |
MAKE-ALL (NJ 0.93) failed in HOL due to lack of disc space.
|
|
531 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:23 hours
|
|
532 |
|
|
533 |
**** Installation of new simplifier ****
|
|
534 |
|
|
535 |
Provers/simp/EXEC: now calls METAHYPS and passes the hyps as an extra arg
|
|
536 |
to the auto_tac.
|
|
537 |
|
|
538 |
FOL,HOL/simpdata: auto_tac now handles the hyps argument
|
|
539 |
|
|
540 |
ZF/simpdata/standard_auto_tac: deleted
|
|
541 |
ZF/simpdata/auto_tac: added hyps argument
|
|
542 |
ZF/epsilon/eclose_least_lemma: no special auto_tac
|
|
543 |
|
|
544 |
*/ex/ROOT: no longer use 'cd' commands; instead pathnames contain "ex/..."
|
|
545 |
|
|
546 |
20 April
|
|
547 |
|
|
548 |
MAKE-ALL failed in HOL/Subst
|
|
549 |
|
|
550 |
HOL/Subst/setplus/cla_case: renamed imp_excluded_middle and simplified.
|
|
551 |
Old version caused ambiguity in rewriting:
|
|
552 |
"[| P ==> P-->Q; ~P ==> ~P-->Q |] ==> Q";
|
|
553 |
|
|
554 |
**** New tar file placed on /homes/lcp (????) ****
|
|
555 |
|
|
556 |
Pure/Syntax: improvements to the printing of syntaxes
|
|
557 |
Pure/Syntax/lexicon.ML: added name_of_token
|
|
558 |
Pure/Syntax/earley0A.ML: updated print_gram
|
|
559 |
|
|
560 |
21 April
|
|
561 |
|
|
562 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 3:44 hours
|
|
563 |
MAKE-ALL (Poly/ML) failed in HOL due to lack of disc space
|
|
564 |
|
|
565 |
HOL/list,llist: now share NIL, CONS, List_Fun and List_case
|
|
566 |
|
|
567 |
make-all: now compresses the log files, which were taking up 4M; this
|
|
568 |
reduces their space by more than 1/3
|
|
569 |
|
|
570 |
rm-logfiles: now deletes compressed log files.
|
|
571 |
|
|
572 |
** Patrick Meche has noted that if the goal is stated with a leading !!
|
|
573 |
quantifier, then the list of premises is always empty -- this gives the
|
|
574 |
effect of an initial (cut_facts_tac prems 1). The final theorem is the
|
|
575 |
same as it would be without the quantifier.
|
|
576 |
|
|
577 |
ZF: used the point above to simplify many proofs
|
|
578 |
ZF/domrange/cfast_tac: deleted, it simply called cut_facts_tac
|
|
579 |
|
|
580 |
22 April
|
|
581 |
|
|
582 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 3:52 hours??
|
|
583 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:16 hours
|
|
584 |
|
|
585 |
30 April
|
|
586 |
|
|
587 |
HOL: installation of finite set notation: {x1,...,xn} (by Tobias Nipkow)
|
|
588 |
|
|
589 |
HOL/set.thy,set.ML,fun.ML,equalities.ML: addition of rules for "insert",
|
|
590 |
new derivations for "singleton"
|
|
591 |
|
|
592 |
HOL/llist.thy,llist.ML: changed {x.False} to {}
|
|
593 |
|
|
594 |
**** New tar file placed on /homes/lcp (584K) ****
|
|
595 |
|
|
596 |
4 May
|
|
597 |
|
|
598 |
MAKE-ALL (NJ 0.93) ran out of space in LK.
|
|
599 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:14 hours
|
|
600 |
|
|
601 |
Pure/Makefile: inserted "chmod u+w $(BIN)/Pure;" in case $(ML_DBASE) is
|
|
602 |
write-protected
|
|
603 |
|
|
604 |
5 May
|
|
605 |
|
|
606 |
HOL/list/not_Cons_self: renamed from l_not_Cons_l
|
|
607 |
HOL/list/not_CONS_self: new
|
|
608 |
|
|
609 |
HOL/llist.thy/Lconst: changed type and def to remove Leaf
|
|
610 |
HOL/llist.ML: changed Lconst theorems
|
|
611 |
|
|
612 |
6 May
|
|
613 |
|
|
614 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:18 hours
|
|
615 |
|
|
616 |
** Installation of new HOL from Tobias **
|
|
617 |
|
|
618 |
HOL/ex/{finite,prop-log} made like the ZF versions
|
|
619 |
HOL/hol.thy: type classes plus, minus, times; overloaded operators + - *
|
|
620 |
HOL/set: set enumeration via "insert"
|
|
621 |
additions to set_cs and set_ss
|
|
622 |
HOL/set,subset,equalities: various lemmas to do with {}, insert and -
|
|
623 |
HOL/llist: One of the proofs needs one fewer commands
|
|
624 |
HOL/arith: many proofs require type constraints due to overloading
|
|
625 |
|
|
626 |
** end Installation **
|
|
627 |
|
|
628 |
ZF/ex/misc: added new lemmas from Abrial's paper
|
|
629 |
|
|
630 |
7 May
|
|
631 |
|
|
632 |
HOL/llist.ML/LList_corec_subset1: deleted a fast_tac call; the previous
|
|
633 |
simplification now proves the subgoal.
|
|
634 |
|
|
635 |
**** New tar file placed on /homes/lcp (584K) ****
|
|
636 |
|
|
637 |
** Installation of new simplifier from Tobias **
|
|
638 |
|
|
639 |
The "case_splits" parameter of SimpFun is moved from the signature to the
|
|
640 |
simpset. SIMP_CASE_TAC and ASM_SIMP_CASE_TAC are removed. The ordinary
|
|
641 |
simplification tactics perform case splits if present in the simpset.
|
|
642 |
|
|
643 |
The simplifier finds out for itself what constant is affected. Instead of
|
|
644 |
supplying the pair (expand_if,"if"), supply just the rule expand_if.
|
|
645 |
|
|
646 |
This change affects all calls to SIMP_CASE_TAC and all applications of SimpFun.
|
|
647 |
|
|
648 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:18 hours
|
|
649 |
|
|
650 |
Cube/ex: UNTIL1, UNTIL_THM: replaced by standard tactics DEPTH_SOLVE_1 and
|
|
651 |
DEPTH_SOLVE
|
|
652 |
|
|
653 |
HOL: installation of NORM tag for simplication. How was it forgotten??
|
|
654 |
|
|
655 |
HOL/hol.thy: declaration of NORM
|
|
656 |
HOL/simpdata: NORM_def supplied to SimpFun
|
|
657 |
|
|
658 |
10 May
|
|
659 |
|
|
660 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:33 hours??
|
|
661 |
|
|
662 |
11 May
|
|
663 |
|
|
664 |
HOL/prod/Prod_eq: renamed Pair_eq
|
|
665 |
HOL/ex/lex-prod: wf_lex_prod: simplified proof
|
|
666 |
|
|
667 |
HOL/fun/inj_eq: new
|
|
668 |
|
|
669 |
HOL/llist/sumPairE: deleted, thanks to new simplifier's case splits!
|
|
670 |
|
|
671 |
12 May
|
|
672 |
|
|
673 |
MAKE-ALL (NJ 0.93) ran out of space in HOL.
|
|
674 |
MAKE-ALL (Poly/ML) failed in HOL.
|
|
675 |
HOL/Subst/utermlemmas/utlemmas_ss: deleted Prod_eq from the congruence rules
|
|
676 |
|
|
677 |
13 May
|
|
678 |
|
|
679 |
Pure/logic/flexpair: moved to term, with "equals" etc. Now pervasive
|
|
680 |
Pure/logic/mk_flexpair: now exported
|
|
681 |
Pure/logic/dest_flexpair: new
|
|
682 |
Pure/goals/print_exn: now prints the error message for TERM and TYPE
|
|
683 |
|
|
684 |
Pure/Syntax/sextension: now =?= has type ['a::{}, 'a] => prop because
|
|
685 |
flexflex pairs can have any type at all. Thus == must have the same type.
|
|
686 |
|
|
687 |
Pure/thm/flexpair_def: now =?= and == are equated for all 'a::{}.
|
|
688 |
|
|
689 |
Pure/tctical/equal_abs_elim,equal_abs_elim_list: new (for METAHYPS fix)
|
|
690 |
Pure/tctical/METAHYPS: now works if new proof state has flexflex pairs
|
|
691 |
|
|
692 |
Pure/Syntax/earley0A,syntax,lexicon: Tokens are represented by strings now,
|
|
693 |
not by integers. (Changed by Tobias)
|
|
694 |
|
|
695 |
*** Installation of more printing functions ***
|
|
696 |
|
|
697 |
Pure/sign/sg: changed from a type abbrev to a datatype
|
|
698 |
Pure/type/type_sig: changed from a type abbrev to a datatype
|
|
699 |
These changes needed for abstract type printing in NJ
|
|
700 |
|
|
701 |
Pure/tctical/print_sg,print_theory: new
|
|
702 |
|
|
703 |
Pure/drule: new file containing derived rules and printing functions.
|
|
704 |
Mostly from tctical.ML, but includes rewriting rules from tactic.ML.
|
|
705 |
|
|
706 |
Pure/ROOT: loads drule before tctical; TacticalFun,TacticFun,GoalsFun now
|
|
707 |
depend on Drule and have sharing constraints.
|
|
708 |
|
|
709 |
14 May
|
|
710 |
|
|
711 |
Installing new print functions for New Jersey: incompatible with Poly/ML!
|
|
712 |
|
|
713 |
Pure/NJ/install_pp_nj: new (requires datatypes as above)
|
|
714 |
Pure/POLY/install_pp_nj: a dummy version
|
|
715 |
|
|
716 |
Pure/ROOT: calls install_pp_nj to install printing for NJ
|
|
717 |
|
|
718 |
*/ROOT: added extra install_pp calls (sg, theory, cterm, typ, ctyp) for
|
|
719 |
Poly/ML [ZF,LCF,Modal do not need them since they inherit them from another
|
|
720 |
logic -- make_database is not used]
|
|
721 |
|
|
722 |
17 May
|
|
723 |
|
|
724 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 3:57 hours??
|
|
725 |
|
|
726 |
Pure/Syntax/lexicon: Yet another leaner and faster version ... (from Tobias)
|
|
727 |
|
|
728 |
18 May
|
|
729 |
|
|
730 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:36 hours
|
|
731 |
|
|
732 |
19 May
|
|
733 |
|
|
734 |
ZF/equalities/Union_singleton,Inter_singleton: now refer to {b} instead of
|
|
735 |
complex assumptions
|
|
736 |
|
|
737 |
20 May
|
|
738 |
|
|
739 |
HOL/list: Tobias added the [x1,...,xn] notation and the functions hd, tl,
|
|
740 |
null and list_case.
|
|
741 |
|
|
742 |
1 June
|
|
743 |
|
|
744 |
MAKE-ALL (Poly/ML) ran perfectly. It took 3:39 hours
|
|
745 |
|
|
746 |
**** New tar file 92.tar.z placed on /homes/lcp (376K) ****
|
|
747 |
|
|
748 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 1:49 hours on albatross.
|
|
749 |
|
|
750 |
Pure/tactic/dres_inst_tac,forw_inst_tac: now call the new
|
|
751 |
make_elim_preserve to preserve Var indexes when creating the elimination
|
|
752 |
rule.
|
|
753 |
|
|
754 |
ZF/ex/ramsey: modified calls to dres_inst_tac
|
|
755 |
|
|
756 |
2 June
|
|
757 |
|
|
758 |
Pure/Thy/read/read_thy,use_thy: the .thy.ML file is now written to the
|
|
759 |
current directory, since the pathname may lead to a non-writeable area.
|
|
760 |
|
|
761 |
HOL/arith: renamed / and // to div and mod
|
|
762 |
ZF/arith: renamed #/ and #// to div and mod
|
|
763 |
|
|
764 |
MAKE-ALL (Poly/ML) ran perfectly. It took 1:48 hours on albatross.
|
|
765 |
|
|
766 |
**** New tar file 92.tar.z placed on /homes/lcp (376K) ****
|
|
767 |
|
|
768 |
Pure/NJ/commit: new dummy function
|
|
769 |
FOLP/ex/ROOT: inserted commit call to avoid Poly/ML problems
|
|
770 |
|
|
771 |
make-all: now builds FOLP also!
|
|
772 |
|
|
773 |
3 June
|
|
774 |
|
|
775 |
ZF/zf.thy,HOL/list.thy,HOL/set.thy: now constructions involving {_}, [_],
|
|
776 |
<_,_> are formatted as {(_)}, [(_)],
|
|
777 |
|
|
778 |
MAKE-ALL (Poly/ML) ran perfectly. It took 4:37 hours on muscovy (with FOLP).
|
|
779 |
|
|
780 |
ZF/Makefile: removed obsolete target for .rules.ML
|
|
781 |
|
|
782 |
All object-logic Makefiles: EXAMPLES ARE NO LONGER SAVED. This saves disc
|
|
783 |
and avoids problems (in New Jersey ML) of writing to the currently
|
|
784 |
executing image.
|
|
785 |
|
|
786 |
4 June
|
|
787 |
|
|
788 |
Pure/logic/rewritec: now uses nets for greater speed. Functor LogicFun now
|
|
789 |
takes Net as argument.
|
|
790 |
|
|
791 |
Pure/ROOT: now loads net before logic.
|
|
792 |
|
|
793 |
MAKE-ALL (Poly/ML) failed in ZF and HOL.
|
|
794 |
|
|
795 |
LK/lk.thy: changed constant "not" to "Not" (for consistency with FOL)
|
|
796 |
|
|
797 |
7 June
|
|
798 |
|
|
799 |
Pure/tactic/is_letdig: moved to library
|
|
800 |
Pure/Syntax/lexicon/is_qld: deleted, was same as is_letdig
|
|
801 |
|
|
802 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:07 hours on albatross.
|
|
803 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 4:41 hours on dunlin.
|
|
804 |
|
|
805 |
HOL/set/UN1,INT1: new union/intersection operators. Binders UN x.B(x),
|
|
806 |
INT x.B(x).
|
|
807 |
|
|
808 |
HOL/univ,llist: now use UN x.B(x) instead of Union(range(B))
|
|
809 |
|
|
810 |
HOL/subset: added lattice properties for INT, UN (both forms)
|
|
811 |
|
|
812 |
8 June
|
|
813 |
|
|
814 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 4:45 hours on dunlin.
|
|
815 |
|
|
816 |
**** New tar file 92.tar.z placed on /homes/lcp (384K) ****
|
|
817 |
|
|
818 |
14 June
|
|
819 |
|
|
820 |
HOL/list.thy/List_rec_def: changed pred_sexp (a variable!) to pred_Sexp.
|
|
821 |
Using def_wfrec hides such errors!!
|
|
822 |
|
|
823 |
**** New tar file 92.tar.gz placed on /homes/lcp (384K) ****
|
|
824 |
|
|
825 |
** NEW VERSION FROM MUNICH WITH ==-REWRITING **
|
|
826 |
|
|
827 |
** The following changes are Toby's **
|
|
828 |
|
|
829 |
type.ML:
|
|
830 |
|
|
831 |
Renamed mark_free to freeze_vars and thaw_tvars to thaw_vars.
|
|
832 |
Added both functions to the signature.
|
|
833 |
|
|
834 |
sign.ML:
|
|
835 |
|
|
836 |
Added val subsig: sg * sg -> bool to signature.
|
|
837 |
Added trueprop :: prop and mark_prop : prop => prop to pure_sg.
|
|
838 |
|
|
839 |
Added
|
|
840 |
|
|
841 |
val freeze_vars: term -> term
|
|
842 |
val thaw_vars: term -> term
|
|
843 |
val strip_all_imp: term * int -> term list * term * int
|
|
844 |
|
|
845 |
Moved rewritec_bottom and rewritec_top to thm.ML.
|
|
846 |
Only bottom-up rewriting supported any longer.
|
|
847 |
|
|
848 |
thm.ML:
|
|
849 |
|
|
850 |
Added
|
|
851 |
|
|
852 |
(* internal form of conditional ==-rewrite rules *)
|
|
853 |
type meta_simpset
|
|
854 |
val add_mss: meta_simpset * thm list -> meta_simpset
|
|
855 |
val empty_mss: meta_simpset
|
|
856 |
val mk_mss: thm list -> meta_simpset
|
|
857 |
|
|
858 |
val mark_prop_def: thm
|
|
859 |
val truepropI: thm
|
|
860 |
val trueprop_def: thm
|
|
861 |
|
|
862 |
(* bottom-up conditional ==-rewriting with local ==>-assumptions *)
|
|
863 |
val rewrite_cterm: meta_simpset -> (thm -> thm list)
|
|
864 |
-> (meta_simpset -> thm list -> Sign.cterm -> thm)
|
|
865 |
-> Sign.cterm -> thm
|
|
866 |
val trace_simp: bool ref
|
|
867 |
|
|
868 |
Simplified concl_of: call to Logic.skip_flexpairs redundant.
|
|
869 |
|
|
870 |
drule.ML:
|
|
871 |
|
|
872 |
Added
|
|
873 |
|
|
874 |
(* rewriting *)
|
|
875 |
val asm_rewrite_rule: (thm -> thm list) -> thm list -> thm -> thm
|
|
876 |
val rewrite_goal_rule: (thm -> thm list) -> thm list -> int -> thm -> thm
|
|
877 |
val rewrite_goals_rule: (thm -> thm list) -> thm list -> thm -> thm
|
|
878 |
|
|
879 |
(* derived concepts *)
|
|
880 |
val forall_trueprop_eq: thm
|
|
881 |
val implies_trueprop_eq: thm
|
|
882 |
val mk_trueprop_eq: thm -> thm
|
|
883 |
val reflexive_eq: thm
|
|
884 |
val reflexive_thm: thm
|
|
885 |
val trueprop_implies_eq: thm
|
|
886 |
val thm_implies: thm -> thm -> thm
|
|
887 |
val thm_equals: thm -> thm -> thm
|
|
888 |
|
|
889 |
(*Moved here from tactic.ML:*)
|
|
890 |
val asm_rl: thm
|
|
891 |
val cut_rl: thm
|
|
892 |
val revcut_rl: thm
|
|
893 |
|
|
894 |
tactic.ML:
|
|
895 |
|
|
896 |
Added
|
|
897 |
|
|
898 |
val asm_rewrite_goal_tac: (thm -> thm list) -> thm list -> int -> tactic
|
|
899 |
val asm_rewrite_goals_tac: (thm -> thm list) -> thm list -> tactic
|
|
900 |
val asm_rewrite_tac: (thm -> thm list) -> thm list -> tactic
|
|
901 |
val fold_goal_tac: thm list -> int -> tactic
|
|
902 |
val rewrite_goal_tac: thm list -> int -> tactic
|
|
903 |
|
|
904 |
Moved to drule.ML:
|
|
905 |
val asm_rl: thm
|
|
906 |
val cut_rl: thm
|
|
907 |
val revcut_rl: thm
|
|
908 |
|
|
909 |
goals.ML:
|
|
910 |
|
|
911 |
Changed prepare_proof to make sure that rewriting with empty list of
|
|
912 |
meta-thms is identity.
|
|
913 |
|
|
914 |
** End of Toby's changes **
|
|
915 |
|
|
916 |
16 June
|
|
917 |
|
|
918 |
Pure/sign/typ_of,read_ctyp: new
|
|
919 |
Pure/logic/dest_flexpair: now exported
|
|
920 |
|
|
921 |
Pure/drule/flexpair_intr,flexpair_elim: new; fixes a bug in
|
|
922 |
flexpair_abs_elim_list
|
|
923 |
|
|
924 |
HOL/equalities/image_empty,image_insert: new
|
|
925 |
HOL/ex/finite/Fin_imageI: new
|
|
926 |
|
|
927 |
Installed Martin Coen's CCL as new object-logic
|
|
928 |
|
|
929 |
17 June
|
|
930 |
|
|
931 |
** More changes from Munich (Markus Wenzel) **
|
|
932 |
|
|
933 |
Pure/library: added the, is_some, is_none, separate and improved space_implode
|
|
934 |
Pure/sign: Sign.extend now calls Syntax.extend with list of constants
|
|
935 |
Pure/symtab: added is_null
|
|
936 |
Pure/Syntax/sextension: added empty_sext
|
|
937 |
Pure/Syntax/syntax: changed Syntax.extend for compatibility with future version
|
|
938 |
|
|
939 |
HOL now exceeds poly's default heap size. Hence HOL/Makefile needs to
|
|
940 |
specify -h 8000.
|
|
941 |
|
|
942 |
HOL/univ/ntrunc_subsetD, etc: deleted the useless j<k assumption
|
|
943 |
|
|
944 |
18 June
|
|
945 |
|
|
946 |
MAKE-ALL (Poly/ML) ran perfectly. It took 4:59 hours on dunlin (with CCL).
|
|
947 |
|
|
948 |
Pure/sign/read_def_cterm: now prints the offending terms, as well as the
|
|
949 |
types, when exception TYPE is raised.
|
|
950 |
|
|
951 |
HOL/llist: some tidying
|
|
952 |
|
|
953 |
23 June
|
|
954 |
|
|
955 |
HOL/llist/Lconst_type: generalized from Lconst(M): LList({M})
|
|
956 |
|
|
957 |
24 June
|
|
958 |
|
|
959 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:23 hours on albatross (with CCL)
|
|
960 |
|
|
961 |
MAKE-ALL (NJ 0.93) failed in CCL due to use of "abstraction" as an
|
|
962 |
identifier in CCL.ML
|
|
963 |
|
|
964 |
**** New tar file 92.tar.gz placed on /homes/lcp (384K) **** (with CCL)
|
|
965 |
|
|
966 |
CCL/ROOT: added ".ML" extension to use commands for NJ compatibility
|
|
967 |
|
|
968 |
25 June
|
|
969 |
|
|
970 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:23 hours on albatross.
|
|
971 |
MAKE-ALL (NJ 0.93) failed in HOL due to lack of ".ML" extension
|
|
972 |
|
|
973 |
HOL/fun/rangeE,imageE: eta-expanded f to get variable name preservation
|
|
974 |
|
|
975 |
HOL/llist/iterates_equality,lmap_lappend_distrib: tidied
|
|
976 |
|
|
977 |
28 June
|
|
978 |
|
|
979 |
HOL/set/UN1_I: made the Var and Bound variables agree ("x") to get variable
|
|
980 |
name preservation
|
|
981 |
|
|
982 |
HOL/llist: co-induction rules applied with res_inst_tac to state the
|
|
983 |
bisimulation directly
|
|
984 |
|
|
985 |
2 July
|
|
986 |
|
|
987 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 2:10 hours on albatross.
|
|
988 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:23 hours on albatross.
|
|
989 |
|
|
990 |
92/Makefile/$(BIN)/Pure: changed echo makefile= to echo database=
|
|
991 |
|
|
992 |
**** New tar file 92.tar.gz placed on /homes/lcp (424K) **** (with CCL)
|
|
993 |
|
|
994 |
|
|
995 |
** NEW VERSION FROM MUNICH WITH ABSTRACT SYNTAX TREES & NEW PARSER **
|
|
996 |
|
|
997 |
I have merged in the changes shown above since 24 June
|
|
998 |
|
|
999 |
CHANGES LOG OF Markus Wenzel (MMW)
|
|
1000 |
=======
|
|
1001 |
|
|
1002 |
29-Jun-1993 MMW
|
|
1003 |
*** Beta release of new syntax module ***
|
|
1004 |
(should be 99% backwards compatible)
|
|
1005 |
|
|
1006 |
Pure/Thy/ROOT.ML
|
|
1007 |
added keywords for "translations" section
|
|
1008 |
|
|
1009 |
Pure/Thy/syntax.ML
|
|
1010 |
minor cleanup
|
|
1011 |
added syntax for "translations" section
|
|
1012 |
.*.thy.ML files now human readable
|
|
1013 |
.*.thy.ML used to be generated incorrectly if no mixfix but "ML" section
|
|
1014 |
"ML" section no longer demands any definitions (parse_translation, ...)
|
|
1015 |
|
|
1016 |
Pure/Thy/read.ML
|
|
1017 |
read_thy: added close_in
|
|
1018 |
added file_exists (not perfect)
|
|
1019 |
use_thy: now uses file_exists
|
|
1020 |
|
|
1021 |
Pure/thm.ML
|
|
1022 |
added syn_of: theory -> syntax
|
|
1023 |
|
|
1024 |
Pure/Makefile
|
|
1025 |
SYNTAX_FILES: added Syntax/ast.ML
|
|
1026 |
|
|
1027 |
Pure/Syntax/pretty.ML
|
|
1028 |
added str_of: T -> string
|
|
1029 |
|
|
1030 |
Pure/Syntax/ast.ML
|
|
1031 |
added this file
|
|
1032 |
|
|
1033 |
Pure/Syntax/extension.ML
|
|
1034 |
Pure/Syntax/parse_tree.ML
|
|
1035 |
Pure/Syntax/printer.ML
|
|
1036 |
Pure/Syntax/ROOT.ML
|
|
1037 |
Pure/Syntax/sextension.ML
|
|
1038 |
Pure/Syntax/syntax.ML
|
|
1039 |
Pure/Syntax/type_ext.ML
|
|
1040 |
Pure/Syntax/xgram.ML
|
|
1041 |
These files have been completely rewritten, though the global structure
|
|
1042 |
is similar to the old one.
|
|
1043 |
|
|
1044 |
|
|
1045 |
30-Jun-1993 MMW
|
|
1046 |
New versions of HOL and Cube: use translation rules wherever possible;
|
|
1047 |
|
|
1048 |
HOL/hol.thy
|
|
1049 |
cleaned up
|
|
1050 |
removed alt_tr', mk_bindopt_tr'
|
|
1051 |
alternative binders now implemented via translation rules and mk_alt_ast_tr'
|
|
1052 |
|
|
1053 |
HOL/set.thy
|
|
1054 |
cleaned up
|
|
1055 |
removed type "finset"
|
|
1056 |
now uses category "args" for finite sets
|
|
1057 |
junked "ML" section
|
|
1058 |
added "translations" section
|
|
1059 |
|
|
1060 |
HOL/list.thy
|
|
1061 |
cleaned up
|
|
1062 |
removed type "listenum"
|
|
1063 |
now uses category "args" for lists
|
|
1064 |
junked "ML" section
|
|
1065 |
added "translations" section
|
|
1066 |
|
|
1067 |
Cube/cube.thy
|
|
1068 |
cleaned up
|
|
1069 |
changed indentation of Lam and Pi from 2 to 3
|
|
1070 |
removed qnt_tr, qnt_tr', no_asms_tr, no_asms_tr'
|
|
1071 |
fixed fun_tr': all but one newly introduced frees will have type dummyT
|
|
1072 |
added "translations" section
|
|
1073 |
|
|
1074 |
|
|
1075 |
30-Jun-1993, 05-Jul-1993 MMW
|
|
1076 |
Improved toplevel pretty printers:
|
|
1077 |
- unified interface for POLY and NJ;
|
|
1078 |
- print functions now insert atomic string into the toplevel's pp stream,
|
|
1079 |
rather than writing it to std_out (advantage: output appears at the
|
|
1080 |
correct position, disadvantage: output cannot be broken);
|
|
1081 |
(Is there anybody in this universe who exactly knows how Poly's install_pp
|
|
1082 |
is supposed to work?);
|
|
1083 |
|
|
1084 |
Pure/NJ.ML
|
|
1085 |
removed dummy install_pp
|
|
1086 |
added make_pp, install_pp
|
|
1087 |
|
|
1088 |
Pure/POLY.ML
|
|
1089 |
removed dummy install_pp_nj
|
|
1090 |
added make_pp
|
|
1091 |
|
|
1092 |
Pure/ROOT.ML
|
|
1093 |
removed install_pp_nj stuff
|
|
1094 |
|
|
1095 |
Pure/drule.ML
|
|
1096 |
added str_of_sg, str_of_theory, str_of_thm
|
|
1097 |
|
|
1098 |
Pure/install_pp.ML
|
|
1099 |
added this file
|
|
1100 |
|
|
1101 |
Pure/sign.ML
|
|
1102 |
added str_of_term, str_of_typ, str_of_cterm, str_of_ctyp
|
|
1103 |
|
|
1104 |
Pure/goals.ML
|
|
1105 |
added str_of_term, str_of_typ
|
|
1106 |
|
|
1107 |
CTT/ROOT.ML
|
|
1108 |
Cube/ROOT.ML
|
|
1109 |
FOL/ROOT.ML
|
|
1110 |
FOLP/ROOT.ML
|
|
1111 |
HOL/ROOT.ML
|
|
1112 |
LK/ROOT.ML
|
|
1113 |
replaced install_pp stuff by 'use "../Pure/install_pp.ML"'
|
|
1114 |
|
|
1115 |
|
|
1116 |
01-Jul-1993 MMW
|
|
1117 |
Misc small fixes
|
|
1118 |
|
|
1119 |
CCL/ROOT.ML
|
|
1120 |
HOL/ROOT.ML
|
|
1121 |
added ".ML" suffix to some filenames
|
|
1122 |
|
|
1123 |
HOL/ex/unsolved.ML
|
|
1124 |
replaced HOL_Rule.thy by HOL.thy
|
|
1125 |
|
|
1126 |
Pure/NJ.ML
|
|
1127 |
quit was incorrectly int -> unit
|
|
1128 |
|
|
1129 |
END MMW CHANGES
|
|
1130 |
|
|
1131 |
Pure/Syntax/sextension/eta_contract: now initially false
|
|
1132 |
|
|
1133 |
Pure/library/cat_lines: no longer calls "distinct"
|
|
1134 |
Pure/sign: replaced to calls of implode (map (apr(op^,"\n") o ... by cat_lines
|
|
1135 |
NB This could cause duplicate error messages from Pure/sign and Pure/type
|
|
1136 |
|
|
1137 |
Pure/goals/prove_goalw: now prints some of the information from print_exn
|
|
1138 |
|
|
1139 |
9 July
|
|
1140 |
|
|
1141 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:26 hours on albatross.
|
|
1142 |
|
|
1143 |
**** New tar file 93.tar.gz placed on /homes/lcp (480K) ****
|
|
1144 |
|
|
1145 |
12 July
|
|
1146 |
|
|
1147 |
MAKE-ALL (NJ 0.93) ran perfectly. It took 2:13 hours on albatross.
|
|
1148 |
MAKE-ALL (Poly/ML) ran perfectly. It took 2:25 hours on albatross.
|
|
1149 |
|
|
1150 |
22 July
|
|
1151 |
|
|
1152 |
ZF/zf.thy: new version from Marcus Wenzel
|
|
1153 |
|
|
1154 |
ZF: ** installation of inductive definitions **
|
|
1155 |
|
|
1156 |
changing the argument order of "split"; affects fst/snd too
|
|
1157 |
sum.thy zf.thy ex/bin.thy ex/integ.thy ex/simult.thy ex/term.thy
|
|
1158 |
pair.ML ex/integ.ML
|
|
1159 |
|
|
1160 |
changing the argument order of "case" and adding "Part": sum.thy sum.ML
|
|
1161 |
|
|
1162 |
ZF/zf.ML/rev_subsetD,rev_bspec: new
|
|
1163 |
|
|
1164 |
ZF/mono: new rules for implication
|
|
1165 |
ZF/mono/Collect_mono: now for use with implication rules
|
|
1166 |
|
|
1167 |
ZF/zf.ML/ballE': renamed rev_ballE
|
|
1168 |
|
|
1169 |
ZF/list.thy,list.ML: files renamed list-fn.thy, list-fn.ML
|
|
1170 |
ZF/list.ML: new version simply holds the datatype definition
|
|
1171 |
NB THE LIST CONSTRUCTORS ARE NOW Nil/Cons, not 0/Pair.
|
|
1172 |
|
|
1173 |
ZF/extend_ind.ML, datatype.ML: new files
|
|
1174 |
ZF/fin.ML: moved from ex/finite.ML
|
|
1175 |
|
|
1176 |
23 July
|
|
1177 |
|
|
1178 |
ZF/ex/sexp: deleted this example -- it seems hardly worth the trouble of
|
|
1179 |
porting.
|
|
1180 |
|
|
1181 |
ZF/ex/bt.thy,bt.ML: files renamed bt-fn.thy, bt-fn.ML
|
|
1182 |
ZF/ex/bt.ML: new version simply holds the datatype definition
|
|
1183 |
|
|
1184 |
ZF/ex/term.thy,term.ML: files renamed term-fn.thy, term-fn.ML
|
|
1185 |
ZF/ex/term.ML: new version simply holds the datatype definition
|
|
1186 |
|
|
1187 |
ZF/sum/InlI,InrI: renamed from sum_InlI, sum_InlI
|
|
1188 |
|
|
1189 |
26 July
|
|
1190 |
|
|
1191 |
ZF/univ/rank_ss: new, for proving recursion equations
|
|
1192 |
|
|
1193 |
ZF/domrange/image_iff,image_singleton_iff,vimage_iff,vimage_singleton_iff,
|
|
1194 |
field_of_prod:new
|
|
1195 |
|
|
1196 |
ZF/domrange/field_subset: modified
|
|
1197 |
|
|
1198 |
ZF/list/list_cases: no longer proved by induction!
|
|
1199 |
ZF/wf/wf_trancl: simplified proof
|
|
1200 |
|
|
1201 |
ZF/equalities: new laws for field
|
|
1202 |
|
|
1203 |
29 July
|
|
1204 |
|
|
1205 |
ZF/trancl/trancl_induct: new
|
|
1206 |
ZF/trancl/rtrancl_induct,trancl_induct: now with more type information
|
|
1207 |
|
|
1208 |
** More changes from Munich (Markus Wenzel) **
|
|
1209 |
|
|
1210 |
Update of new syntax module (aka macro system): mostly internal cleanup and
|
|
1211 |
polishing;
|
|
1212 |
|
|
1213 |
Pure/Syntax/*
|
|
1214 |
added Ast.stat_norm
|
|
1215 |
added Syntax.print_gram, Syntax.print_trans, Syntax.print_syntax
|
|
1216 |
cleaned type and Pure syntax: "_CLASSES" -> "classes", "_SORTS" -> "sorts",
|
|
1217 |
"_==>" -> "==>", "_fun" -> "fun", added some space for printing
|
|
1218 |
Printer: partial fix of the "PROP <aprop>" problem: print "PROP " before
|
|
1219 |
any Var or Free of type propT
|
|
1220 |
Syntax: added ndependent_tr, dependent_tr'
|
|
1221 |
|
|
1222 |
Pure/sign.ML: removed declaration of "==>" (now in Syntax.pure_sext)
|
|
1223 |
|
|
1224 |
Changes to object logics: minor cleanups and replacement of most remaining ML
|
|
1225 |
translations by rewrite rules (see also file "Translations");
|
|
1226 |
|
|
1227 |
ZF/zf.thy
|
|
1228 |
added "translations" section
|
|
1229 |
removed all parse/print translations except ndependent_tr, dependent_tr'
|
|
1230 |
fixed dependent_tr': all but one newly introduced frees have type dummyT
|
|
1231 |
replaced id by idt in order to make terms rereadable if !show_types
|
|
1232 |
|
|
1233 |
Cube/cube.thy
|
|
1234 |
removed necontext
|
|
1235 |
replaced fun_tr/tr' by ndependent_tr/dependent_tr'
|
|
1236 |
|
|
1237 |
CTT/ctt.thy
|
|
1238 |
added translations rules for PROD and SUM
|
|
1239 |
removed dependent_tr
|
|
1240 |
removed definitions of ndependent_tr, dependent_tr'
|
|
1241 |
|
|
1242 |
HOL/set.thy: replaced id by idt
|
|
1243 |
|
|
1244 |
CCL/ROOT.ML: Logtic -> Logic
|
|
1245 |
|
|
1246 |
CCL/set.thy
|
|
1247 |
added "translations" section
|
|
1248 |
removed "ML" section
|
|
1249 |
replaced id by idt
|
|
1250 |
|
|
1251 |
CCL/types.thy
|
|
1252 |
added "translations" section
|
|
1253 |
removed definitions of ndependent_tr, dependent_tr'
|
|
1254 |
replaced id by idt
|
|
1255 |
|
|
1256 |
Yet another improvement of toplevel pretty printers: output now breakable;
|
|
1257 |
|
|
1258 |
Pure/NJ.ML Pure/POLY.ML improved make_pp
|
|
1259 |
|
|
1260 |
Pure/install_pp.ML: replaced str_of_* by pprint_*
|
|
1261 |
|
|
1262 |
Pure/drule.ML: replaced str_of_{sg,theory,thm} by pprint_*
|
|
1263 |
|
|
1264 |
Pure/sign.ML: replaced str_of_{term,typ,cterm,ctyp} by pprint_*
|
|
1265 |
|
|
1266 |
Pure/goals.ML: fixed and replaced str_of_{term,typ} by pprint_*
|
|
1267 |
|
|
1268 |
Pure/Syntax/pretty.ML: added pprint, quote
|
|
1269 |
|
|
1270 |
Minor changes and additions;
|
|
1271 |
|
|
1272 |
Pure/sign.ML: renamed stamp "PURE" to "Pure"
|
|
1273 |
|
|
1274 |
Pure/library.ML
|
|
1275 |
added quote: string -> string
|
|
1276 |
added to_lower: string -> bool
|
|
1277 |
|
|
1278 |
Pure/NJ.ML,POLY.ML: added file_info of Carsten Clasohm
|
|
1279 |
|
|
1280 |
30 July
|
|
1281 |
|
|
1282 |
MAKE-ALL (Poly/ML) ran perfectly.
|
|
1283 |
|
|
1284 |
Pure/goals/print_sign_exn: new, takes most code from print_exn
|
|
1285 |
Pure/goals/prove_goalw: displays exceptions using print_sign_exn
|
|
1286 |
|
|
1287 |
Pure/drule/print_sg: now calls pretty_sg to agree with pprint_sg
|
|
1288 |
|
|
1289 |
Pure/library,...: replaced front/nth_tail by take/drop.
|
|
1290 |
|
|
1291 |
Pure/term/typ_tfrees,typ_tvars,term_tfrees,term_tvars: new
|
|
1292 |
thm/mk_rew_triple, drule/types_sorts, sign/zero_tvar_indices: now use the above
|
|
1293 |
|
|
1294 |
Pure/logic/add_term_vars,add_term_frees,insert_aterm,atless:
|
|
1295 |
moved to term, joining similar functions for type variables;
|
|
1296 |
Logic.vars and Logic.frees are now term_vars and term_frees
|
|
1297 |
|
|
1298 |
Pure/term/subst_free: new
|
|
1299 |
|
|
1300 |
Pure/tactic/is_fact: newly exported
|
|
1301 |
|
|
1302 |
Provers/simp/mk_congs: uses filter_out is_fact to delete trivial cong rules
|
|
1303 |
|
|
1304 |
Pure/tactic/rename_last_tac: now uses Syntax.is_identifier instead of
|
|
1305 |
forall is_letdig
|
|
1306 |
|
|
1307 |
**** New tar file 93.tar.gz placed on /homes/lcp (448K) ****
|
|
1308 |
|
|
1309 |
2 August
|
|
1310 |
|
|
1311 |
MAKE-ALL (NJ 0.93) failed in ZF due to Compiler bug: elabDecl:open:FctBodyStr
|
|
1312 |
MAKE-ALL (Poly/ML) failed in ZF/enum. It took 2:33 hours on albatross.
|
|
1313 |
|
|
1314 |
Pure/drule/triv_forall_equality: new
|
|
1315 |
Pure/tactic/prune_params_tac: new
|
|
1316 |
|
|
1317 |
Provers/hypsubst/bound_hyp_subst_tac: new, safer than hyp_subst_tac
|
|
1318 |
|
|
1319 |
3 August
|
|
1320 |
|
|
1321 |
Pure/tactic/rule_by_tactic: new
|
|
1322 |
|
|
1323 |
ZF/perm/compEpair: now proved via rule_by_tactic
|
|
1324 |
|
|
1325 |
ZF/extend_ind/cases,mk_cases: new
|
|
1326 |
ZF/datatype/mk_free: new
|
|
1327 |
ZF/list: now calls List.mk_cases
|
|
1328 |
|
|
1329 |
4 August
|
|
1330 |
|
|
1331 |
Provers/slow_tac,slow_best_tac: new
|
|
1332 |
|
|
1333 |
5 August
|
|
1334 |
|
|
1335 |
MAKE-ALL (Poly/ML) failed in ZF
|
|
1336 |
|
|
1337 |
ZF/sum/sumE2: deleted since unused
|
|
1338 |
ZF/sum/sum_iff,sum_subset_iff,sum_equal_iff: new
|
|
1339 |
ZF/univ/Transset_Vfrom: new; used in proof of Transset_Vset
|
|
1340 |
|
|
1341 |
6 August
|
|
1342 |
|
|
1343 |
Pure/goals/prepare_proof: after "Additional hypotheses", now actually
|
|
1344 |
prints them!
|
|
1345 |
|
|
1346 |
ZF/ordinal/Transset_Union_family, Transset_Inter_family: renamed from
|
|
1347 |
Transset_Union, Transset_Inter
|
|
1348 |
|
|
1349 |
ZF/ordinal/Transset_Union: new
|
|
1350 |
ZF/univ/pair_in_univ: renamed Pair_in_univ
|
|
1351 |
|
|
1352 |
ZF/mono/product_mono: generalized to Sigma_mono; changed uses in trancl, univ
|
|
1353 |
|
|
1354 |
ZF/lfp/lfp_Tarski,def_lfp_Tarski: renamed from Tarski,def_Tarski; changed
|
|
1355 |
uses in extend_ind.ML, nat.ML, trancl.ML.
|
|
1356 |
|
|
1357 |
ZF/ex/misc: Schroeder-Bernstein Theorem moved here from lfp.ML
|
|
1358 |
|
|
1359 |
ZF/fixedpt.thy,.ML: renamed from lfp.thy,.ML, and gfp added
|
|
1360 |
|
|
1361 |
9 August
|
|
1362 |
|
|
1363 |
ZF/zf.thy/ndependent_tr,dependent_tr': deleted, since they are now on
|
|
1364 |
Syntax/sextension.
|
|
1365 |
|
|
1366 |
11 August
|
|
1367 |
|
|
1368 |
Pure/library.ML: added functions
|
|
1369 |
assocs: (''a * 'b list) list -> ''a -> 'b list
|
|
1370 |
transitive_closure: (''a * ''a list) list -> (''a * ''a list) list
|
|
1371 |
|
|
1372 |
Pure/type.ML: deleted (inefficient) transitive_closure
|