-
Notifications
You must be signed in to change notification settings - Fork 88
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revision of structure theorems (3) #4377
base: develop
Are you sure you want to change the base?
Conversation
* comment of ~strfvn revised (fixed integer -> index; Note -> Hint) * ~setsidvald revised (to make it more index-independent) * Usage of ~setsidvald in ~ressval3d adjusted (proof shortened, independent of ~df-base now)
* ~basndxelwund extracted from proof of ~1strwun (index-.independent) * proof of ~1strwun shortended (and made index-independent) * ~wunres revised (not using df-base anymore)
* ~2strstr, ~grpstr discouraged * ~2strstr1 proof shortened * ~plusgndxnn, ~basendxltplusgndx added, ~basendxnplusgndx proof shortened * ~grpstrnd added; ~grpbase and ~grpplusg revised (not depending on ~df-plusg anymore)
* ~tsetndxnplusgndx, ~plendxnplusgndx added * ~oppglem replaced by more general ~setsplusg * proofs of ~oppgbas, ~oppgtset, ~oppgle revised
* ~scandxnplusgndx, ~dsndxnplusgndx added * ~mgplem discouraged, replaced by more general ~setsplusg * proofs of ~mgpbas, ~mgpscat, ~mgptset, ~mgpds revised * proof of ~mgpress shortened (and not depending on ~plusgndx and ~basendx anymore)
* ~strndxid discouraged, because it requires hard-coded indices (~strfvnd should be used instead) * new theoems ~vscandxnplusgndx and ~vscandxnscandx extracted from proofs * proofs of ~oppcbas, ~rescbas, ~estrreslem1, ~rmodislmod and ~edgfndxid shortend (independet of *ndx theorems and definitions df-* now)
* Usage of df-unif discouraged * new theorems ~unifndxnn, ~basendxltunifndx, ~unifndxntsetndx extracted from proof of ~tuslem * proof of ~unifndxnbasendx, ~tuslem shortened Additional changes: * proofs of ~wunress, ~basendxnmulrndx, ~slotsbhcdif shortened (independent of ~df-base)
* Usage of df-ds discouraged * new theorems ~scandxnmulrndx, ~vscandxnmulrndx, ~ipndxnplusgndx, ~ipndxnmulrndx, ~slotstnscsi , ~dsndxnn, ~basendxltdsndxn, ~dsndxntsetndx, ~slotsdnscsi, ~slotsinbpsd, ~slotslnbpsd extracted from proof of ~mgpsca, ~rmodislmod, ~sralem, ~tmslem, ~tngds, ~ttglem * proof of ~dsndxnbasendx, ~tngds shortened * ~sralem, ~srabase, ~sraaddg, ~sramulr, ~sratset, ~srads, ~cchhllem revised * ~tmslem, ~ttglem, ~ttgbas, ~ttgplusg, ~ttgvsca, ~ttgds revised Additional changes: * proofs of ~wunress, ~basendxnmulrndx, ~slotsbhcdif shortened (independent of ~df-base)
* Usage of df-ple and df-edgf discouraged * Usage of df-itv and df-kng discouraged * new theorems ~plendxnn, ~basendxltplendx extracted from proof of ~isposix * proof of ~plendxnbasendx, ~isposix, ~baseltedgf, ~iedgval0 shortened * new slot numbers for df-mfsh and df-mevl
* Usage of df-ip discouraged * new theorems ~tsetndxnmulrndx, ~dsndxnmulrndx, added * ~tnglem, ~tngbas, ~tngplusg, ~tngmulr, ~tngsca, ~tngvsca, ~tngip revised Other changes: * fveqprc (extracted from ~zlmlem, to be used in the future)
* Usage of df-tset discouraged * Usage of ~2strbas, ~2strop discouraged (only used by OLD theorems now) * new theorems ~tsetndxnn, ~basendxlttsetndx , added * proof of ~tsetndxnbasendx, ~nrgtrg shortened * ~eltpsg, ~indistpsALT revised
* new theorem ~ oveqprc * ~resvlem, ~resvbas, ~resvplusg, ~resvvsca, ~resvmulr revised * proofs of ~mendplusgfval, ~mendmulrfval, ~mendsca, ~mendvscafval (no OLD versions)
* Usage of df-vsca discouraged * new theorems ~plendxnmulrndx , ~plendxnvscandx , ~ plendxnscandx extracted from proofs for ~opsrmulr, ~opsrvsca, ~opsrsca, ~opsrbaslem * proof of ~psrvscafval shortened * ~opsrbaslem, ~opsrbas, +opsrplusg, ~opsrmulr, ~opsrvsca, ~opsrsca revised ~mnringnmulrd, ~mnringbased, ~mnringaddgd, ~mnringscad , ~mnringvscad revised *
* Usage of df-sca discouraged * ~psr1sca2 , ~ply1sca2 revised
* Usage of df-mulr discouraged * new theorems ~starvndxnplusgndx , ~starvndxnmulrndx extracted from proofs for ~hlhilslem , ~hlhilsbase , +hlhilsplus , ~hlhilsmul * proof of ~zlmsca shortened * ~zlmlem , ~zlmbas, +zlmplusg, ~zlmmulr revised * ~znbaslem , ~znbas2 , +znadd , ~znmul revised * ~hlhilslem , ~hlhilsbase , +hlhilsplus , ~hlhilsmul revised
* Usage of df-plusg discouraged * proof of ~frmdplusg shortened * ~opprlem , ~opprbas , +oppradd, revised/shortened * proof of ~ply1plusgfvi revised
* Usage of df-base discouraged * some *ndxn* theorems reordered * ~basendxltdsndxn renamed ~basendxltdsndx * ~slotsbaseefdif renamed ~basendxnedgfndx * proof of ~symgvalstruct shortened * proofs of ~rlmscaf , ~ply1tmcl, ~ply1scltm, ~ply1sclf, ~ply1scl0, ~ply1scl1 revised
proofs shortened using ~oveqprc and ~fveqprc.
~bj-endbase and ~bj-endcomp seem to be already revised accordingly meanwhile, so only ~bj-isrvec is left. |
I would like to push back a little on not ever making use of the slot numbers, because proving that a structure is well formed is done most efficiently by proving that its fields are ordered numerically. Not doing this causes the proof to go from O(n) to O(n^2) in size. |
Are you talking about the On the other hand, there are already theorems which must be proven by quadratically many inequalities of the form With my next PR, I will concentrate on theorems not being |
As discussed in issue #3235, the new usage of the definitions df-* for slots in extensible structures is discouraged now. It was possible to replace most of the former usages by new/existing theorems not depending on the hard-coded values for the indices.
For this, new auxiliary theorems (
*ndxn*
,slots*
) were provided. There are 40 of these auxiliary theorems in set.mm now, 26 of them are used more than once (and therefore surely pay off). This number is far less then the maximum 190 (number of proper pairs of numbers 1 to 20, which are currently used as slot indices).As a result, the usage of the definitions df-* could be reduced from 159 to 39 (the OLD theorems excluded): except df-base, df-plusg and df-sca, each definition is only used by the two basic theorems
*id
and*ndx
now (df-base is used by ~baseval and ~bj-endbase, df-plusg by ~grpstr and ~bj-endcomp, and df-sca by ~bj-isrvec additionally - the ~bj-* theorems can and should be revised later).As a side effect, the number of usages of the *ndx theorems could be reduced from 141 to 103 (not counting the OLD theorems and the auxiliary theorems
*ndxn*
,*ndxlt*
,*ndxnn
,slots*
). This is a first step in direction of the second part of issue #3235, to reduce and discourage the usage of the *ndx theorems (outside of subsection 7.1.2).I commited the changes regarding each definition separately, so that a detailed review should be done commit by commit.