<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
A good place to look for the low-down on the relationship between<br>
HOL and set theory is a paper by Thomas Forster written originally<br>
for (and published in the proceedings of) HUG94.<br>
<br>
"Weak systems of set theory related to HOL"<br>
<br>
This has however been subsequently augmented and corrected<br>
so it is better to go to Thomas Forster's web page <br>
<a class="moz-txt-link-freetext" href="https://www.dpmms.cam.ac.uk/~tf/">https://www.dpmms.cam.ac.uk/~tf/</a><br>
or to write to him for a copy (tf at maths.cam.ac.uk).<br>
<br>
The essence of his conclusions as far as the present issue is<br>
concerned, (as I understand it) are as follows:<br>
<br>
HOL has the same consistency strength as Maclane Set theory,<br>
which is strictly weaker than Zermelo set theory.<br>
Therefore an embedding of Zemelo into HOL will not be possible<br>
without axiomatic extension of HOL, for which a strengthening<br>
of the axiom of infinity would suffice.<br>
For a typed Zermelo, and hence for the Z specification language<br>
the situation is different, and a full embedding of the Z
specification<br>
language into HOL has been available in ProofPower since about<br>
1994.<br>
<br>
What I address here is what is generally called a "shallow semantic
embedding"<br>
or any embedding method which one would expect to be<br>
constrained by relative consistency strength.<br>
For a "deep" semantic embedding the constraints are more strict<br>
and a deep embedding of the Z specification language would also<br>
fail (without axiomatic extension).<br>
<br>
The question of "embedding a proof in Z" might be interpreted<br>
in a way not subject to such constraints, since the notion of<br>
proof in Z (as opposed to "truth in Z") is semi-decidable and fully<br>
formalisable in HOL.<br>
<br>
On the more detailed suggestions, the only functions over types,<br>
<i>as such</i>, are type constructors, which cannot take numeric<br>
parameters. However the effect of functions over types, insofar<br>
as they depend only on the cardinality of the type, can be realised.<br>
A predicate of type:<br>
<br>
num -> * -> BOOL<br>
<br>
could be defined which would ignore the value of the second<br>
parameter but would indicate whether the size of its type is<br>
or is not greater than the nth power of Nat.<br>
However, the principled objections mentioned above suggest <br>
that this would not suffice to secure the desired embedding.<br>
<br>
Roger Jones<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>