And of course the largest such refactor in this vein is iset.mm, although this one was considered sufficiently different as to be moved to a separate database (which I think is slightly unfortunate).
On Tue, Jan 9, 2024 at 10:17 PM Mario Carneiro <di.g...@gmail.com> wrote: > IMO this is definitely worthwhile, especially since it moves an axiom from > used almost everywhere to used almost nowhere. We have previously done > refactors of that kind for ax-groth, ax-ac2, ax-reg, ax-rep and I think we > have a better understanding of the true dependencies of many theorems as a > result. > > On Tue, Jan 9, 2024 at 9:30 PM Gino Giotto <ginogiotto.giap...@gmail.com> > wrote: > >> I believe the question now is whether there is a general consensus for >> eventually bringing set.mm towards this direction. Is low usage of ax-13 >> at the cost of more than 100 additional lemmas what we wish for? Or maybe >> you would like to follow different paths and pursue different achievements? >> Looking forward to hear your thoughts. >> >> Il giorno mercoledì 3 gennaio 2024 alle 02:02:21 UTC+1 Benoit ha scritto: >> >>> Thanks Gino, I'm going to have a look. In addition to my post on the >>> discussion group that you mention, I also began to do in my mathbox what >>> you described, i.e., adding enough DV conditions to the technical lemmas so >>> as to later remove some ax-13 usages, but less systematically. Some >>> theorems made it to the main sections, but most remain in my mathbox, in >>> the section "20.15.4.12 Removing dependencies on ax-13 (and ax-11)", which >>> also has a section head comment to explain the principles. The plan was to >>> move to Main only the ones that had the greatest benefits, but since there >>> was no clear criterion, this kind of stalled. >>> >>> Benoît >>> >>> On Tuesday, January 2, 2024 at 12:52:10 AM UTC+1 di....@gmail.com wrote: >>> >>>> On Mon, Jan 1, 2024 at 6:43 PM Jim Kingdon <kin...@panix.com> wrote: >>>> >>>>> One (historical?) note: some of what we have now is the result of >>>>> experimentation in the opposite direction - trying to figure out whether a >>>>> logical system can be built without distinct variable constraints at all >>>>> (I >>>>> think there is some reference to this in some comments or web pages). I >>>>> think the verdict was that it was possible but so cumbersome as to be >>>>> impractical (because all the distinctor antecedents need to be carried >>>>> along until the point where that variable is no longer in use, I think). >>>>> But perhaps I'm not summarizing that quite right - like I say this isn't a >>>>> topic I've been hugely engaged with. >>>>> >>>> >>>> No it's worse than that: even after the variable is done being used you >>>> still can't discharge the distinctor, it permanently sticks around. >>>> Effectively all proofs end up saying "provided there are at least N >>>> variables in the metalogic, the following theorem holds" because you >>>> actually can't prove anything about whether variables exist in this >>>> setting. This admits models where e.g. the object logic only has three >>>> variables v0 v1 v2 and so you can't write any expression containing four or >>>> more forall or exists quantifiers without being degenerate in some way, so >>>> the undischargeable assumptions that pile up are saying that the object >>>> logic is at least nondegenerate enough to perform the proof in question. >>>> >>>> >>>>> On 1/1/24 13:38, Gino Giotto wrote: >>>>> >>>>> In the last few days, I've been working on reducing the usage of >>>>> ax-13, aiming at getting the highest result with the minimum amount of >>>>> changes. The results of my findings are committed in my repository branch >>>>> https://github.com/GinoGiotto/set.mm/tree/ax-13-complete, which is >>>>> based on a version of set.mm dating back to December 13, 2023. >>>>> >>>>> This research was primarily motivated by curiosity. I read this email >>>>> from Benoit >>>>> https://groups.google.com/g/metamath/c/1wi1s6qBYqY/m/FPkPsd5oAwAJ. He >>>>> described how most theorems use technical lemmas with dummy variables and >>>>> I >>>>> became interested in checking the real extent of this. The good news is >>>>> that ax-13 can be erased almost everywhere. The bad news is that I needed >>>>> 129 lemmas to accomplish this task, which is higher than the final >>>>> estimates provided in that conversation (100 seemed to be the upper >>>>> bound). >>>>> >>>>> The approach I pursued goes as follows: Starting from >>>>> https://us.metamath.org/mpeuni/ax13w.html, I proved all theorems in >>>>> the ax-13 section by adding the necessary dv conditions. Then I continued >>>>> to the "Uniqueness and unique existence" section and the first few set >>>>> theory sections until usage of proofs with dummy variables became >>>>> prevalent. Distinguishing between the theorems that require additional dv >>>>> conditions from those that don't isn't straightforward, so at first I >>>>> simply proved them all and later I pruned away those that didn't >>>>> necessitate additional dv conditions. >>>>> >>>>> This process resulted in more than 300 additional lemmas, which I >>>>> later pruned again by eliminating unused and already existing ones. This >>>>> job ultimately reduced the number to 129 additional lemmas, which I >>>>> believe >>>>> cannot be lowered further unless proof lenghtenings are introduced. >>>>> >>>>> In the meantime, I conducted multiple minimization sessions with the >>>>> new lemmas using the /MAY_GROW option. This option allows to replace steps >>>>> even when the proof length increases. In most of my minimizations, the >>>>> overall proof shape and length remained unchanged as I replaced theorems >>>>> with identical versions with more dv conditions. >>>>> >>>>> All and only my 129 additional lemmas have a *(Contributed by Gino >>>>> Giotto, 30-Dec-2023.) *tag, so this information can be used to >>>>> distinguish them from the other theorems in the database. >>>>> >>>>> I adopted the naming convention of adding a *w suffix to the original >>>>> theorem names. The reason I did not use a *v suffix is because it would >>>>> have resulted in 17 naming collisions. Since all the pre-exisiting >>>>> versions >>>>> have more dv conditions than mine, they would have to be renamed with *vv, >>>>> which would have increased the amount of changes in the commit. Also I >>>>> believe it makes sense to name them as *w since they all originated from >>>>> ax13w (even tho after shortening their proofs they don't use ax13w >>>>> anymore). So in the end, by using a *w suffix, no naming collision was >>>>> generated. >>>>> >>>>> But enough rambling, let's get to the numbers: >>>>> As of commit >>>>> https://github.com/metamath/set.mm/tree/5228c50ed1c4f3e7c41dd0d5fe49c91f5c7725c8 >>>>> dating >>>>> back to December 13, 2023, ax-13 was used by 32,347 out of 41,652 >>>>> theorems, >>>>> covering 77.66% of the entire database. As of January 1, 2024, this >>>>> percentage is at 77.64%, so it hasn't changed much since then. >>>>> >>>>> In my branch https://github.com/GinoGiotto/set.mm/tree/ax-13-complete, >>>>> thanks to the lemmas I added and the minimizations I performed, ax-13 is >>>>> used by only 819 theorems out of 41,781, which is just 1.96% of the entire >>>>> database. If we exclude OLD/ALT versions then the number of theorems that >>>>> use ax-13 goes down to around 700. The majority of these remaining >>>>> theorems >>>>> are found in the ax-13 section, in the "Alternate definition of >>>>> substitution" section, and within mathboxes. Many of those 700 theorems >>>>> could drop ax-13 by adding dv conditions directly to them, but I believe >>>>> that would be considered cheating (I only did this for 2 or 3 theorems >>>>> where adding a new version didn't seem worth it, also they didn't affect >>>>> the dv conditions of later theorems). >>>>> >>>>> It's possible to check these numbers with *metamath-knife set.mm >>>>> <http://set.mm> --stmt-use use.txt ax-13 *which shows what theorems >>>>> in set.mm use ax-13. A comparison between axiom usage of my branch >>>>> https://github.com/GinoGiotto/set.mm/tree/ax-13-complete and the base >>>>> branch >>>>> https://github.com/GinoGiotto/set.mm/tree/5228c50ed1c4f3e7c41dd0d5fe49c91f5c7725c8 >>>>> shows >>>>> the result of my minimizations. The command metamath-knife set.mm -X >>>>> ax.txt can be used to check that other axioms haven't been added, >>>>> however it's better to find a way to ignore ax-13 for this, otherwise >>>>> you're going to be overwhelmed by the amount of changes from it. So far >>>>> I've not yet seen axioms that have been mistakenly introduced (on the >>>>> contrary there are a few theorems with a reduced usage of ax-10, ax-11 and >>>>> ax-12). >>>>> >>>>> Unfortunately, despite my efforts to make as few changes as possible, >>>>> the commit on my branch6fc6153 >>>>> <https://github.com/metamath/set.mm/commit/6fc6153e0e4df76bf73bfeef76151d5354bc972c>still >>>>> looks huge, with about 48,000 changed lines. Most of these changed lines >>>>> are the result of the minimization process and rewrapping (the proof >>>>> changes themselves are often very minor, in reality it's the rewrapping >>>>> the >>>>> skews everything). I didn't find ways to lower this number down without >>>>> tradeoffs. >>>>> >>>>> This result (aka the mentioned branch in my fork) can be used in >>>>> different ways, one could use it as a simple consultation for future axiom >>>>> minimizations, or maybe it can be converted into a proper PR series. The >>>>> latter would require some non-trivial work of systematization, so probably >>>>> it would be better to discuss about it first. >>>>> >>>>> Regards >>>>> >>>>> Gino >>>>> -- >>>>> 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 metamath+u...@googlegroups.com. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/metamath/84b387ba-298f-4252-8c70-821e3a23d372n%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/metamath/84b387ba-298f-4252-8c70-821e3a23d372n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>>> -- >>>>> 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 metamath+u...@googlegroups.com. >>>>> >>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/metamath/4d7b01cb-fca5-4713-9dad-308941403db8%40panix.com >>>>> <https://groups.google.com/d/msgid/metamath/4d7b01cb-fca5-4713-9dad-308941403db8%40panix.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >> 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 metamath+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/metamath/1d10fb5c-6d2b-4b5b-bf3b-1207af44b2fcn%40googlegroups.com >> <https://groups.google.com/d/msgid/metamath/1d10fb5c-6d2b-4b5b-bf3b-1207af44b2fcn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- 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 metamath+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/CAFXXJStNwoXiaAp0nmQo3FH-UwKxr956j_pK-n8RTpKwFqGU5w%40mail.gmail.com.