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.
nipkow [Sun, 16 Apr 1995 11:55:03 +0200] rev 1063
Brought in line with new organization of IOA.
lcp [Fri, 14 Apr 1995 12:21:15 +0200] rev 1062
New examples directories Resid and AC
lcp [Fri, 14 Apr 1995 12:03:15 +0200] rev 1061
Definition of 'let' declarations, from HOL
lcp [Fri, 14 Apr 1995 11:27:57 +0200] rev 1060
In binders, the default body priority is now p instead of 0.
lcp [Fri, 14 Apr 1995 11:27:18 +0200] rev 1059
Now builds Resid as a test
lcp [Fri, 14 Apr 1995 11:26:22 +0200] rev 1058
Deleted comment
lcp [Fri, 14 Apr 1995 11:25:23 +0200] rev 1057
Renamed diff_sing_lepoll to Diff_sing_lepoll.
lcp [Fri, 14 Apr 1995 11:24:51 +0200] rev 1056
Renamed domain_diff_subset, range_diff_subset,
field_diff_subset, converse_diff to domain_Diff_subset, range_Diff_subset,
field_Diff_subset, converse_Diff for consistency. (Thanks to KG)
lcp [Fri, 14 Apr 1995 11:24:10 +0200] rev 1055
Renamed diff_sing_lepoll, lepoll_diff_sing and diff_sing_eqpoll
to Diff_sing_lepoll, lepoll_Diff_sing and Diff_sing_eqpoll for consistency.
Strengthened lepoll_Diff_sing. (Thanks to KG)
lcp [Fri, 14 Apr 1995 11:22:30 +0200] rev 1054
Updated CADE reference
lcp [Fri, 14 Apr 1995 11:20:53 +0200] rev 1053
Removes (obsolete) target if already present.
nipkow [Thu, 13 Apr 1995 17:05:41 +0200] rev 1052
Olafs new version.
nipkow [Thu, 13 Apr 1995 16:57:18 +0200] rev 1051
Directory example is now called NTP
nipkow [Thu, 13 Apr 1995 16:55:14 +0200] rev 1050
ABP: Alternating bit protocol example
nipkow [Thu, 13 Apr 1995 16:53:15 +0200] rev 1049
New ROOT file.
lcp [Thu, 13 Apr 1995 15:38:07 +0200] rev 1048
New example by Ole Rasmussen
lcp [Thu, 13 Apr 1995 15:13:27 +0200] rev 1047
Simplified some proofs and made them work for new hyp_subst_tac.
lcp [Thu, 13 Apr 1995 15:08:39 +0200] rev 1046
expandshort
lcp [Thu, 13 Apr 1995 15:06:25 +0200] rev 1045
Deleted some useless things and made proofs of
refl_comp_subset and comp_equivI more like the versions in ZF/EquivClass.ML
lcp [Thu, 13 Apr 1995 15:03:07 +0200] rev 1044
Simplified using pattern replacements.
regensbu [Thu, 13 Apr 1995 14:25:45 +0200] rev 1043
adjusted HOLCF for new hyp_subst_tac
lcp [Thu, 13 Apr 1995 14:18:22 +0200] rev 1042
Defined vv1 using let. Introduced gg1, gg2.
lcp [Thu, 13 Apr 1995 14:15:36 +0200] rev 1041
Deleted subset_imp_Un_Diff_eq, as it is identical to
Diff_partition. Used split_tac (sometimes via simplifier) to apply expand_if.
Replaced lt_oadd_disj1 by lt_oadd_odiff_disj, using ordinal difference instead
of a description. Removed the outer quantifier from all_sum_lepoll_m,
all_sum_lepoll_m_2. Changed all "lesspoll succ(m)" to "lepoll m" and
simplified proofs. Changed definitions of vv1 and ww1 to use lepoll instead
of lesspoll; therefore vv1(f,b,succ(m)) becomes vv1(f,b,m). Moved proof of
vv1_not_0 into the body of the proof using this result. Renamed variable aa
to s. Simplified lemma_iv using addss. Renamed some theorems; combined some
proofs.
lcp [Thu, 13 Apr 1995 11:44:37 +0200] rev 1040
New root file
lcp [Thu, 13 Apr 1995 11:43:01 +0200] rev 1039
Redefined OUnion in a definitional manner