Hi John,

I have read both papers
        http://www.cl.cam.ac.uk/~jrh13/papers/joerg.html
        http://www.cl.cam.ac.uk/~jrh13/papers/holright.html
and will include them in the overview.

Let me comment on "HOL Done Right" first before discussing "History of 
Interactive Theorem Proving" and the connection to the paper by Kuncar and 
Popescu.

1. "Slind has added type quantifiers as suggested by Melham (1992) [...]" (p. 1)
I am not aware of HOL4 (or any other HOL implementation by Konrad Slind) 
implementing type quantifiers - please let me know if I have overlooked 
something.
Also, maybe Tom could comment on whether his 1992 article significantly differs 
from his 1993 article available online at
        http://www.cs.ox.ac.uk/tom.melham/pub/Melham-1994-HLE.pdf
drawing on Andrews' system Q from 1965 with quantification over types.
Both articles have identical names and roughly the same page count:
        http://dx.doi.org/10.1016/B978-0-444-89880-7.50007-3 (Melham 1992)
        http://dx.doi.org/10.1007/BF01383982 (Melham 1993)

2. "Note that Henkin (1963) showed how all the logical constants could be 
derived classically from just a higher order function calculus." (p. 7)
It's interesting that you refer to Henkin's article in Fundamenta Mathematicae 
52 (1963) available online at
        http://matwbn.icm.edu.pl/ksiazki/fm/fm52/fm52123.pdf
with errata at
        http://matwbn.icm.edu.pl/ksiazki/fm/fm53/fm53125.pdf
whereas my first main reference is the article directly following in the same 
volume, i.e., Andrews' article, which simplifies Henkin's axiom system and 
marks the birth of Q0 (1963), available online at
        http://matwbn.icm.edu.pl/ksiazki/fm/fm52/fm52124.pdf
and quoted at
        http://dx.doi.org/10.4444/100.111
I still have the print Peter Andrews gave me.
For me, it is also interesting to see that the names of Rule R and Rule T, 
which I mainly know from Andrews' second (2002) edition, have their origin in 
Henkin's article of 1963 ("Rule of Replacement" / "Rule R", p. 330; "Rule T", 
p. 332).

3. "If we were really interested in parsimony, every logical operation could be 
defined, and the turnstile regarded as a logical operator." (p. 7)
Actually, this is done in R0.
In the effort of expressing everything _within_ the object language (not being 
dependent on a metatheory), the turnstile was eliminated and replaced by the 
implication.
Accordingly, Andrews Rule R' [Andrews, 2002, p. 214] was reformulated in R0.
As discussed earlier at
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2016-August/msg00069.html 
(section 4)
I consider Rule R' (and not Rule R) as the main rule, as it also takes into 
account a possible set of hypotheses, and Rule R may be viewed as only a 
special case of R' (with an empty set of hypotheses).
In HOL, according to Andy Pitts, there are "three primitive constants": 
equality (identity), epsilon operator, and implication
        
http://freefr.dl.sourceforge.net/project/hol/hol/kananaskis-10/kananaskis-10-logic.pdf
 (p. 21)
In Q0/R0, of course, the epsilon operator is replaced by the description 
operator.
In addition to that, it has to be admitted that despite the claim that "Q0 
requires [...] only two basic constants (identity/equality and its counterpart, 
description)"
        
https://lists.cam.ac.uk/pipermail/cl-isabelle-users/2015-July/msg00147.html
in R0, the implication also has a special status, as in the implementation of 
Rule R', explicit reference is made to the implication symbol (which replaces 
the turnstile).
Hence both, HOL and R0, are identical in that there are three primitive 
constants: equality (identity), epsilon/description operator, and implication.

4. "As primitive principles of definition and type definition, we use only the 
core constant of equality, and so avoid any dependence on defined notions like 
the existential quantifier." (p. 7)
Agreed. Peter B. Andrews: "Henkin's paper is of particular interest in that it 
takes symbols for the identity relation as the sole primitive constants." 
[Andrews, 1963, p. 345]
There is a recent historical note by Andrews ("A Bit of History Related to 
Logic Based on Equality", 2014) at
        http://dx.doi.org/10.1007/978-3-319-09719-0_8
not linked at his homepage currently, in which he describes the close 
collaboration with Leon Henkin during that period, when Andrews was at 
Princeton University (until finishing his Ph.D. there in 1964 with Alonzo 
Church as advisor) and Henkin at the Institute for Advanced Study in Princeton 
as how they "together [...] searched [Andrews'] card file of bibliographic 
references" for some reference "in the logical literature to defining 
quantifiers as well as propositional connectives in terms of equality" (p. 68).


5. From John Harrison, Josef Urban and Freek Wiedijk: History of Interactive 
Theorem Proving
"Another limitation of the simple HOL type system is that there is no explicit 
quantifier over polymorphic type variables, which can make many standard 
results like completeness theorems and universal properties awkward to express, 
though there are extensions with varying degrees of generality that fix this 
issue [Melham, 1992; Voelker, 2007; Homeier, 2009]. Inflexibilities of these 
kinds certainly arise in simple type theories, and it is not even clear that 
more flexible dependent type theories (where types can be parametrized by 
terms) are immune. For example, in one of the most impressive formalization 
efforts to date [Gonthier et al., 2013] the entire group theory framework is 
developed in terms of subsets of a single universe group, apparently to avoid 
the complications from groups with general and possibly heterogeneous types."
        http://www.cl.cam.ac.uk/~jrh13/papers/joerg.pdf (p. 36)
        http://dx.doi.org/10.1016/B978-0-444-51624-4.50004-6

Group theory can be very naturally expressed with type abstraction, as done in 
R0.
See the definition of groups ("Grp", p. 359) at
        
http://www.kenkubota.de/files/R0_draft_excerpt_with_definitions_and_groups.pdf
To keep formalization efforts low, I chose a simple example of a group in the 
R0 implementation: (o, XOR).
First, I derived a simple property for all groups, the uniqueness of the 
identity element ("GrpIdElUniq", p. 364).
Then it is shown that (o, XOR) is a group ("XorGroup", p. 416):
        Grp o XOR
(Note that type 'o' - the type of truth values - appears as regular term here 
suitable for lambda application including lambda-conversion/beta-reduction, as 
with type abstraction, types are not a separate syntactic category anymore, but 
terms of type tau - the type of types.)
Finally, the general theorem on the uniqueness of the identity element valid 
for all groups can simply be instantiated for the specific example group (o, 
XOR) without having to carry out the first proof again ("XorGrpIdElUniq", 
p. 419).

This approach, taking advantage of a higher expressiveness with type 
abstraction, is clearly more elegant than the current Isabelle/HOL language 
extension (axiomatic type classes), which introduces something in between a 
constant and a variable, allowing a constant to be declared first (line 1 of 
example 2) and to be defined later (line 3) at:
        http://www21.in.tum.de/~kuncar/documents/kuncar-popescu-itp2015.pdf (p. 
2)
        http://dx.doi.org/10.1007/978-3-319-22102-1_16

This gives the "constant" the rights of a variable without imposing the 
corresponding duties (restrictions), which Kuncar exploited to express a 
classical paradox with the two characteristic properties: negativity (negation) 
and self-reference (impredicativity). Kuncar and Popescu found a way to keep 
track of the dependencies in order to avoid circularity, however, I would argue 
that this is an auxiliary solution, as the dependencies should be recorded 
explicitly with the syntactic means of the formal language (as intended by 
Russell), which is the typing (allowing only certain wffs) and the restriction 
on (type) variables in Rule R' in Q0/R0 or the binding of (type) variables with 
lambda, respectively.


As mentioned off-list, a PDF version of "HOL Done Right" would be desirable 
(and maybe long-term availability, e.g., via the UCAM-CL-TR series).

Best,

Ken

____________________

Ken Kubota
doi: 10.4444/100
http://dx.doi.org/10.4444/100



> Am 24.10.2016 um 04:55 schrieb john.harri...@cl.cam.ac.uk:
> 
> Hi Ken,
> 
> | John's e-mail on the motivation for HOL Light and his comparison with
> | Andrews' systems is highly interesting. I would suggest an article "On the
> | Logical Foundations of HOL Light" or similar to make the information
> | persistent, as the policy of the mailing list provider may change. For now,
> | I have quoted from the publicly available e-mail via the online link.
> 
> I am glad you found it interesting. Indeed, I don't think I've ever
> written a detailed canonical description of the HOL Light foundations,
> though there are brief summaries scattered in various places, so this is
> certainly something to think about.
> 
> On the history of HOL Light and related systems, in addition to those
> you have already discussed, let me shamelessly plug a book chapter
> written by Josef Urban, Freek Wiedijk and myself on the history of
> interactive theorem proving in general. This in particular discusses LCF
> and its successors, especially HOL, in section 3, complete with another
> little "family DAG" of HOL systems on page 19:
> 
>  http://www.cl.cam.ac.uk/~jrh13/papers/joerg.html
> 
> Also of historical interest may be my old unpublished note "HOL Done
> Right":
> 
>  http://www.cl.cam.ac.uk/~jrh13/papers/holright.html
> 
> That describes an intermediate stage in the evolution of HOL Light when
> the logical kernel still had implication as a primitive. The setup
> described there is also of some relevance to the discussion of type
> definition principles in a related thread, because it sketches what (as
> Rob notes in his paper) was the first version of a definitional
> principle that is roughly a "unary" version of his own idea. At the risk
> of reiterating what you can read in Rob's paper, let me explain my
> motivations there.
> 
> Roger Jones gave an excellent description of the origins of what in
> HOL88 were called "new_definition" (a simple |- c = t binding) and
> "new_specification" (introducing constants satisfying a predicate given
> an existential theorem). One more perceived rough edge in HOL88 and
> hol90 that I wanted to fix in HOL Light was that there should indeed be
> two completely different definitional principles when they are
> tantalizingly close to being interderivable:
> 
> * Since |- exists x. x = t is clearly provable, one can derive 
>   "new_definition" fron "new_specification". There is however a
>   bootstrapping problem because "new_definition" is used to 
>   define the existential quantifier on which "new_specification"
>   depends!
> 
> * Once the epsilon operator is present, one can easily derive
>   "new_specification" from "new_definition", but only with the
>   motivating drawback mentioned by Roger Jones that you get
>   "too much information" about the introduced constants.
> 
> In the early versions of HOL Light I chose the slightly different
> approach of taking as primitive a variant of "new_specification" that
> allowed one to introduce a new constant c and a theorem |- P[c] given an
> input theorem |- P[t] for a specific term t, not |- exists x. P[x] as in
> "new_specification". Then no quantifiers are involved, and
> "new_definition" is a trivial instance because of reflexivity |- t = t,
> while "new_specification" can be derived from the epsilon operator
> without exposing too much information. One needs of course some
> restrictions on variables and type variables analogous to those Roger
> discussed. (Amusingly, I too got them wrong in the first instance, as
> Tom Melham spotted instantly when I first showed him the code. This
> was long before HOL Light was a public system.)
> 
> At some point I switched HOL Light back to the simple |- c = t
> "new_definition" because it seemed slightly simpler and more intuitive,
> and I have personally never been very interested in the "too much
> information" problem (I generally want to define things explicitly, not
> leave them underspecificed). I can quite well see the arguments for
> Rob's version though.
> 
> John.


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
hol-info mailing list
hol-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hol-info

Reply via email to