On 1/19/16 6:32 PM, Norman Megill wrote:
> Maybe waiting for the /explicit proof format is the practical thing to
> do. I'll move it up on my to-do list.
>
> Norm
Version 0.123 of the metamath program adds a new /explicit proof format
that allows hypotheses ($e, $f) in
set.mm to be reordered without any
side effects. It is available here:
http://us2.metamath.org:88/index.html#mmprog
Specifically, the following features were added to metamath.exe:
1. The /packed qualifier is now available for 'show [new_]proof' and
'save [new_]proof'. (Originally it was available, but undocumented, for
'save'.)
2. A new /explicit qualifier is available with /normal and /packed
formats in 'show' and 'save' proofs.
The current /normal proof is a list of labels. The /packed format is an
extension to /normal that adds local labels "<nn>:" to subproofs that
can be referenced later in the proof without repeating them. The
/explicit format is an extension to /normal and /packed that puts a
target label "<target>=" in front of the (source) label in each step.
This target label overrides the order in which hypotheses are declared.
The /explicit formats will let you rearrange the ordering of $f and $e
hypotheses in the database without affecting any proofs.
The /packed and /explicit qualifiers aren't documented in the help yet.
The following examples illustrate all current proof formats:
MM> sh p ru/compressed
Proof of "ru":
---------Clip out the proof below this line to put it in the source file:
( vy cv wnel cab cvv wcel wn wceq wex wb wal pm5.19 df-nel
eleq12d notbid
eleq1 id syl5bb mtbir bibi12d a4v mto abeq2 nex isset mpbir )
ACZUHDZAEZF
DUJFGZHUKBCZUJIZBJUMBUMUHULGZUIKZALZUPULULGZUQHZKZUQMUOUSABUHULIZUNUQ ...
MM> sh p ru/normal
Proof of "ru":
---------Clip out the proof below this line to put it in the source file:
vx cv vx cv wnel vx cab cvv wnel vx cv vx cv wnel vx cab cvv wcel
wn vx
cv vx cv wnel vx cab cvv wcel vy cv vx cv vx cv wnel vx cab wceq...
MM> sh p ru/normal/explicit
Proof of "ru":
---------Clip out the proof below this line to put it in the source file:
vx=vx cA=cv vx=vx cB=cv wph=wnel vx=vx cA=cab cB=cvv wph=wnel
vx=vx cA=cv
vx=vx cB=cv wph=wnel vx=vx wcel.cA=cab wcel.cB=cvv wph=wcel
wps=wn vx=vx
cA=cv vx=vx cB=cv wph=wnel vx=vx wcel.cA=cab wcel.cB=cvv wph=wcel
vx=vy
wceq.cA=cv vx=vx cA=cv vx=vx cB=cv wph=wnel vx=vx wceq.cB=cab ...
MM> sh p ru/packed
Proof of "ru":
---------Clip out the proof below this line to put it in the source file:
vx 1:cv 1 2:wnel vx 3:cab cvv wnel 3 cvv 4:wcel wn 4 vy 5:cv 3
6:wceq vy
wex 6 vy 6 1 5 7:wcel 2 8:wb vx 9:wal 9 5 5 10:wcel 10 11:wn
12:wb ...
MM> sh p ru/packed/explicit
Proof of "ru":
---------Clip out the proof below this line to put it in the source file:
vx=vx 1:cA=cv cB=1 2:wph=wnel vx=vx 3:cA=cab cB=cvv wph=wnel
wcel.cA=3
wcel.cB=cvv 4:wph=wcel wps=wn wph=4 vx=vy 5:wceq.cA=cv wceq.cB=3
6:wph=wceq vx=vy wps=wex wph=6 vx=vy wph=6 wcel.cA=1 wcel.cB=5
7:wph=wcel
wps=2 8:wph=wb vx=vx 9:wps=wal wph=9 wcel.cA=5 wcel.cB=5
10:wph=wcel...
Here are the size and proof verification speed impacts of these formats
for
set.mm (when all proofs are saved in the format):
/compressed: 'verify proof *' 14s, file size 28MB
/normal: 'verify proof *' 118s, file size 148MB
/normal/explicit: 'verify proof *' 4055s, file size 302MB
/packed: 'verify proof *' 20s, file size 36MB
/packed/explicit: 'verify proof *' 39s, file size 64MB
The 'verify proof *' time for /packed/explicit may vary depending on how
much hypothesis rearranging was done to in the database. The 39s
assumes no hypotheses were rearranged. Ordinarily, after editing the
hypothesis order as desired in the database, we would then 'save proof
*/compressed'.
The long run time for /normal/explicit might be improved somewhat with
more efficient code, but I don't think it will be used much so it
shouldn't matter.
Norm