--
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 visit https://groups.google.com/d/msgid/metamath/c8811771-bd98-4d95-96b9-1839a1d73505%40gmx.net.
On 02/12/2024 17:52, Jorge Agra wrote:
That auto-transformation we mention, is what? Do you mind explaining?
For example MMJ2 is able to automatically expand this proof
snippet from just the last step:
All it needs is the exclamation mark before the label and once
the Unify command is called (Ctrl-U), it will generate all 3 steps
above.
Yamma does not have this and I manually fill in `eqeq12d` among a short list. Then it will automatically find `id` as it is a one-step proof. I have to choose `oveq1d` over a short list (the first theorem in the list is often the correct one), and finally it find `oveq1` automatically.
MMJ2's auto-transformation is mentioned here: https://github.com/digama0/mmj2/blob/c8dd05548139c7003220caedde65a7abe44a00bf/CHGLOG.TXT#L47
> That's awesome, thanks for organizing this!
I second that. Thank you Saveliy for continuing this initiative!
I also was able to prove abaeqb. Similarly to Thierry’s proof, my proof also introduced a disjoint condition for a and b, whereas the task has disjoints showing that a and b should be non-disjoint. I spent some time trying to find another proof which will not require this additional disjoint for a and b, but I could not find it. On the one hand, as I understand, requiring a and b to be disjoint, means that we cannot substitute the same set for a and b simultaneously. Please correct me if I am wrong. For example, with this new disjoint we will not be able to “apply” this theorem to the statement |- ( ph -> A. x e. B A. x e. B ( x .o. x ) e. B ). Also the original d-conditions look like it was made deliberately that a and b should not be disjoint. On the other hand, it was mentioned that “beware of possible problems in the statements (especially in the d-conditions)”. Saveliy, could you please comment on that (is it legal to add a disjoint for a and b and what was your intention)?
> do you use some automation (tactics) to do substitutions into the identity, like deriving step 23 of your MPP file? Or you simply remember the movements by heart?
> That auto-transformation we mention, is what? Do you mind explaining?
These are all good questions. I used mm-lamp, and it has some automation to prove such steps (no need to write any code, it is available out of the box). I want to record a video with some explanations on how I proved abaeqb. This is a good example for me to demonstrate automation capabilities of mm-lamp. Will it not break any rules of this initiative, if I show how to prove abaeqb?
I also was able to prove abaeqb. Similarly to Thierry’s proof, my proof also introduced a disjoint condition for a and b, whereas the task has disjoints showing that a and b should be non-disjoint. I spent some time trying to find another proof which will not require this additional disjoint for a and b, but I could not find it. On the one hand, as I understand, requiring a and b to be disjoint, means that we cannot substitute the same set for a and b simultaneously. Please correct me if I am wrong. For example, with this new disjoint we will not be able to “apply” this theorem to the statement |- ( ph -> A. x e. B A. x e. B ( x .o. x ) e. B ). Also the original d-conditions look like it was made deliberately that a and b should not be disjoint. On the other hand, it was mentioned that “beware of possible problems in the statements (especially in the d-conditions)”. Saveliy, could you please comment on that (is it legal to add a disjoint for a and b and what was your intention)?
I'll post my progress here:
https://github.com/tirix/christmas24.mm
These are all good questions. I used mm-lamp, and it has some automation to prove such steps (no need to write any code, it is available out of the box). I want to record a video with some explanations on how I proved abaeqb. This is a good example for me to demonstrate automation capabilities of mm-lamp. Will it not break any rules of this initiative, if I show how to prove abaeqb?
Yes, it is legal to add or remove disjoints if you need it for the proof. I don't have a very good intuition behind disjoint conditions, so it seems I missed some in the statements.
> I used mm-lamp, and it has some automation to prove such steps (no need to write any code, it is available out of the box). ... Will it not break any rules of this initiative, if I show how to prove abaeqb?
Sure, please share the video, it would be very interesting to take a look at mm-lamp automation.
> This is a typo, the theorem requires a and b to be disjoint. …
Got it. Thank you Mario.
Here is my video https://drive.google.com/file/d/1B_hiEfuP8KE3L_6uTnfdD7wkiLP15IIp/view?usp=sharing
A couple of comments to the video.
The volume may spike suddenly, so don't listen at high volume.
At 13:15, I didn't manage to clearly explain the difference between how matching and unification work in mm-lamp. Matching can replace all kinds of variables but it can do that in the top expression only. Unification can replace variables in both expressions but it can replace meta-variables only.
> Thank you, Igor, it is a really interesting video.
Thanks, Glauco! Yamma’s feature of proposing a list of theorems is also very useful. I want to add such a feature to mm-lamp in the future.
> there's potential for improving the search maybe by adding special tactics for set.mm which narrow down the search with specific theorems banned/allowed.
Thanks for the feedback! Current implementation of the bottom-up prover allows to provide a list of theorems to use. Also it is possible to narrow down usage of some theorems to some specific scenarios. For example, to allow usage of syl only when the first hypothesis is of the form of |- ( ph -> X e. A ) and the conclusion is |- ( ph -> Y = ( X ^ N ) ). With appropriately collected list of theorems to use and such rules for narrowing down usage of some theorems, the bottom-up prover becomes very fast, so I don’t even need to specify statement length restriction. But all of these are available in macros only. I also have a few more ideas to try, for example, making bottom-up prover parameters dynamic, so they depend on what is needed to prove. Currently I am working on a few other improvements which will affect macros API. After that I will start documenting the macros feature.
>There is a bit of a conflict between proof length and amount of DV conditions.
My vote, in general, is for fewer DV conditions, even at the cost of a longer proof.
I also prefer using nf* over cbv*, as it makes the intent clearer.
--
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 visit https://groups.google.com/d/msgid/metamath/27f7b052-78a8-4b02-b269-0e817bb9bb65n%40googlegroups.com.
I've also been posting my progress here:
https://github.com/tirix/christmas24.mm/commits
https://github.com/tirix/christmas24.mm/blob/master/christmas24.mm
I limited myself to one theorem a day, so I should reach the last theorem of the original list around Christmas day.
Some of my proofs seem shorter, but I have not run the minimizer.
BR,
_
Thierry
> Part 2 is, of course, making a version of this which is suitable for set.mm.
Sure. I committed all my proofs in my own fork of set.mm https://github.com/GinoGiotto/set.mm/tree/christmas. All verifiers are green https://github.com/GinoGiotto/set.mm/actions/runs/12335559653.
--
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 visit https://groups.google.com/d/msgid/metamath/beb9b41c-2f01-4b1b-94d1-734203474e44n%40googlegroups.com.
Hi all,
We could certainly include those proofs in set.mm, crediting both Gino and myself. I'll see if I can propose a PR. It will not be perfect at first, but they can be reworked to remove hypotheses, DV conditions and axiom dependencies.
BR,
_
Thierry
--
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 visit https://groups.google.com/d/msgid/metamath/73427ff3-25ac-48ec-bad2-39b6cf80e41en%40googlegroups.com.