> Am 24.02.2020 um 20:48 schrieb Norman Megill <[email protected]>:
> 
> On Sunday, February 23, 2020 at 10:24:59 AM UTC-5, Ken Kubota wrote:
> ... 
> (Note that Metamath isn't really Hilbert-style, in my opinion, since it can 
> express metatheorems. It seems to start directly at a higher level, like all 
> logical frameworks.
> A true Hilbert-style system consists only of the (mathematical) object 
> language. So I disagree with Mario Carneiro at this point:
> https://groups.google.com/d/msg/metamath/DRMh8ZPA6Mo/10_2n9pfDgAJ 
> <https://groups.google.com/d/msg/metamath/DRMh8ZPA6Mo/10_2n9pfDgAJ> )
> ...
> I think this is somewhat quibbling.  Yes, Metamath proves schemes from other 
> schemes.  However, any of these schemes, as well as any step of any proof, 
> can be immediately and trivially instantiated with an object-language 
> substitution, resulting in a Hilbert-style proof per your requirements if we 
> do that all the way back to axioms.  To be pedantic I guess one could say 
> that Metamath "directly represents" Hilbert-style proofs if you disagree that 
> it "is" Hilbert-style.

You argue the same way as Mario does.

My knowledge about Metamath is limited, but I believe that Mario is correct in 
that the form of reasoning resembles that of a Hilbert-style system.

However, my perspective is different since my intention is to find the natural 
language of mathematics (following Andrews' notion of expressiveness).
This means that (like in Andrews' Q0) metatheorems cannot be expressed directly 
using the means of the formal language only.

While implementations based on Q0 (such as Cris Perdues' Prooftoys or my R0 
software) use logical implication (located at the object language level) as the 
key symbol of the Hilbert-style system, logical frameworks use the turnstile or 
another symbols (located at the meta-language level) which denotes derivability 
/ provability.

So by definition Metamath (as a logical framework / a metalogic) doesn't fit 
into the definition of a Hilbert-style system in the narrow sense, which simply 
reflects the fact that the design purposes are different and therefore the 
language levels are.


> In real life no one does object-language proofs, not even textbooks that 
> claim to work with Hilbert-style systems, because you can't reuse the 
> theorems for other instances, and proofs become astronomically long.  Let us 
> say the object-language variables are v1, v2,... There is a Metamath (set.mm) 
> scheme called "id" that states "phi -> phi" for any wff phi.  If a proof in 
> the style you are insisting on needed two instances of this, say "v1 = v2 -> 
> v1 = v2" and "v3 e. v4 -> v3 e. v4" ("e." meaning "element of"), they would 
> each have to be proved all over again starting from appropriate 
> instantiations of the starting axiom schemes.

Exactly this is done in the R0 software implementation: it does object language 
proofs only.
Instead of schemes, templates are used (*.r0t files instead of the regular *.r0 
files), so you can re-use the template with different initial values and simply 
include the template file.
In his 2002 textbook, Andrews carefully distinguishes meta-language proofs from 
object language proofs by introducing boldface "syntactical variables" 
[Andrews, 2002, p. 11].

The corresponding theorem in R0 is K8005 (H => H) and uses the logical 
implication, so a direct comparison is difficult here.
But substitution may serve as an example here:

> ##  Proof A6102:  Peano's Postulate No. 5 for Andrews' Definition of Natural 
> Numbers

> 
> ##  Source: [Andrews 2002 (ISBN 1-4020-0763-9), p. 262]
> 
> ## .1
> 
> %K8005
> 
> ## use Proof Template A5221 (Sub):  B  -->  B [x/A]
> := $B5221 %0
> := $T5221 o
> := $X5221 x{$T5221}
> := $A5221 
> ((&{{{o,o},o}}_(p{{o,$S}}{{o,$S}}_(AZERO{{{o,{o,\3{^}}},^}}_t{^}{^}){$S}){o}){{o,o}}_((A{{{o,{o,\3{^}}},^}}_$S{^}){$To2S}_[\x{$S}{$S}.((=>{{{o,o},o}}_((ANSET{{{o,{o,{o,\4{^}}}},^}}_t{^}{^}){{o,$S}}_x{$S}{$S}){o}){{o,o}}_((=>{{{o,o},o}}_(p{{o,$S}}{{o,$S}}_x{$S}{$S}){o}){{o,o}}_(p{{o,$S}}{{o,$S}}_((ASUCC{{{{o,{o,\4{^}}},{o,{o,\4{^}}}},^}}_t{^}{^}){{$S,$S}}_x{$S}{$S}){$S}){o}){o}){o}]{{o,$S}}){o})
> << A5221.r0t.txt
> := $B5221; := $T5221; := $X5221; := $A5221

The line starting with "<<" includes the template file.
In the preceding lines the initial values are set (pattern:   := variable value 
  ).
In the following lines the values are unset (pattern:   := variable   ).
The semicolon is equivalent to the end of line.

So in fact all proofs are done at the object-language level.


> http://us.metamath.org/mpeuni/mmset.html#2p2e4length 
> <http://us.metamath.org/mpeuni/mmset.html#2p2e4length> gives an example of 
> this.  "As an example of the savings we achieve by using only schemes, the 
> 2p2e4 proof described in 2 + 2 = 4 Trivia above requires 26,323 proof steps 
> [which include the complex number construction] to be proved from the axioms 
> of logic and set theory. If we were not allowed to use different instances of 
> intermediate theorem schemes but had to show a direct object-language proof, 
> where each step is an actual axiom or a rule applied to previous steps, the 
> complete formal proof would have 73,983,127,856,077,147,925,897,127,298 
> (about 7.4 x 10^28) proof steps."

It is true that proofs sometimes become slow, but in the approach logical rigor 
was more important than practical considerations.
Run
        make A6102.r0.dbg.txt && open $_
on a Mac to see the verbose proof of the Principle of Mathematical Induction, 
where each proof instance is shown (29M filesize, 624908 lines).
For comparison, the abbreviated proof (not expanding the template proofs) 
obtained by
        make A6102.r0.out.txt && open $_
has only a filesize of 44K and 973 lines.


In order to fulfil both philosophical and practical needs, my suggestion is a 
two-step approach:

The first step focuses on logical rigor and uses the object language only. 
(This is my current R0 software implementation.)
In the second step the logic is reformulated in a meta-language where 
metatheorems can be expressed directly.

But it is important to separate these two steps.

____________________________________________________


Ken Kubota
http://doi.org/10.4444/100 <http://doi.org/10.4444/100>

-- 
You received this message because you are subscribed to the Google Groups 
"Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/metamath/0E7295FC-CB38-4B16-AD01-878822692E8C%40kenkubota.de.

Reply via email to