fsumshft.5 |
In order to use a theorem with implicit substitution, the proof usually eliminates the implicit substitution hypotheses with a chain of equality and/or biconditional theorems. The hypotheses are then completely eliminated, and ph is hardly ever needed to achieve that (if ever). So we rarely bother to add a ph antecedent. Offhand I can't recall a case where it would have helped in practice.
Hi Olivier,
To illustrate Alexander's explanation with your example, I attach a proof of your statement in set.mm:
|- ( x = 1 -> sum_ k e. ( 0 ... 2 ) ( ( 2 x. k ) + x ) = sum_ j e. ( 1 ... 3 ) ( ( 2 x. j ) - ( x x. x ) )
The main steps are following Alexander's model:
170::fsumshft |- ( x = 1 -> sum_ k e. ( 0 ... 2 ) ( ( 2 x. k ) + x ) = sum_ j e. ( ( 0 + 1 ) ... ( 2 + 1 ) ) ( ( 2 x. ( j - 1 ) ) + x ) )
210:: |- ( x = 1 -> ( ( 0 + 1 ) ... ( 2 + 1 ) ) = ( 1 ... 3 ) )
510:: |- ( ( x = 1 /\ j e. ( ( 0 + 1 ) ... ( 2 + 1 ) ) ) -> ( ( 2 x. ( j - 1 ) ) + x ) = ( ( 2 x. j ) - ( x x. x ) ) )
520:210,510:sumeq12dv |- ( x = 1 -> sum_ j e. ( ( 0 + 1 ) ... ( 2 + 1 ) ) ( ( 2 x. ( j - 1 ) ) + x ) = sum_ j e. ( 1 ... 3 ) ( ( 2 x. j ) - ( x x. x ) ) )
qed:170,520:eqtrd |- ( x = 1 -> sum_ k e. ( 0 ... 2 ) ( ( 2 x. k ) + x ) = sum_ j e. ( 1 ... 3 ) ( ( 2 x. j ) - ( x x. x ) ) )
BR,
_
Thierry
After considering things through, I understand what Norman/Alexander/Giovani were saying :
some hypothesis are just there to allow the theorem to do it's (verification) job. And are not really "needed", when you do an index shift in a sum, you apply a formula like k+->k+a to the index and it is the responsability of the theorem to propagate the changes in the formulas.
a e. ZZ is a necessary hypothesis to be allowed to do the transformation and, of course, the sum should be valid.
Also, "implicit" substitutions allow metamath to check the validity on a substitution but also do a lot more work than explicit substitution (there are equalities and transitivity involved).
So, IMO, theorems with implicit substitutions (they allow multiple steps to be done in one go) may be a lot better/more powerfull than the same theorem with an explicit substitution (which do a single step)... though, depending how the explicit substitution is done, it may allow to circumvent the limitations imposed on the implicit substitution crippled by the lack of (ph -> (but it will involve a lot of steps)
Now, I concur with the opinion of Alexander.
Proving that |- sum_ k e. ( 0 .. 2 ) ( ( 2 x. k ) + 1 ) = sum_ j e. ( 1 .. 3 ) ( ( 2x. j ) - 1 ) can be achievedthrough the implicit substitutions of fsumshift or explicit substitutionsBut proving that |- ( x = 1 -> sum_ k e. ( 0 .. 2 ) ( ( 2 x. k ) + x ) = sum_ j e. ( 1 .. 3 ) ( ( 2x. j ) - ( x x. x ) )CANNOT be proved by fsumshift, it may be proved by explicit substitutions (provided they allow the use of ( x = 1 -> ), but by using a lot more steps, which defeat the purpose of having a single theorem call prove the equality
Getting back to your original question, we can prove fsumshft with your modified (weaker) fsumshft.5 starting from directly from fsumshft with the stronger fsumshft.5. I show a proof here:
http://us2.metamath.org/mpeuni/fsumshftdOLD.html
To summarize the proof, we use csbeq1 at step 15 to eliminate the hypothesis fsumshft.5. This converts the implicit substitution to an explicit substitution version of fsumshft at step 16. Next we use cbvsumi at steps 18 and 25 to change the dummy variables x and y in the fsumshft conclusion to j and k. Of particular interest is the use of sbcied at step 30, which, using the new (weaker) hypothesis fsumshftd.5, results in [_ ( k - K ) / j ]_ A = B to get rid of the explicit substitution on A and result in B.
We could add ph to every such hypothesis to make it more general-purpose, but 99% of the time it wouldn't be needed and would make all other proofs using it (as well as the theorem itself) slightly longer. Not to mention that it would be a huge retrofit to do this throughout set.mm. I will concede there may be a few cases where it would be advantageous to do things other than prove a simple substitution with the hypothesis, but overall I believe it is rare and does not justify adding ph everywhere.
Le 3 nov. 2019 à 23:38, 'Alexander van der Vekens' via Metamath <meta...@googlegroups.com> a écrit :
On Thursday, October 31, 2019 at 1:55:27 PM UTC+1, Norman Megill wrote:
We could add ph to every such hypothesis to make it more general-purpose, but 99% of the time it wouldn't be needed and would make all other proofs using it (as well as the theorem itself) slightly longer. Not to mention that it would be a huge retrofit to do this throughout set.mm. I will concede there may be a few cases where it would be advantageous to do things other than prove a simple substitution with the hypothesis, but overall I believe it is rare and does not justify adding ph everywhere.I tried to identify all the theorems in set.mm (excluding the mathboxes) which would be concerned - I found about 70 of them (see attachment deduct_th_eq_hyp.txt). On the other hand, there are about 50 theorema in deduction form having the form $e |- ( ( ph /\ x = ... ) -> ... ) $. (see attachment deduct_th_ph_eq_hyp.txt). So there is no big difference. Therefore, I still would propose to recommend to use the form $e |- ( ( ph /\ x = ... ) -> ... ) $. in deduction style. Already existing theorems need not to be rewritten (by the way, many of them have no "d" at the end..).
--
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/351cfee0-e03b-4d61-b839-694b61641bb0%40googlegroups.com.
<deduct_th_ph_eq_hyp.txt><deduct_th_eq_hyp.txt>
ThierryLe 3 nov. 2019 à 23:38, 'Alexander van der Vekens' via Metamath <meta...@googlegroups.com> a écrit :
--
On Thursday, October 31, 2019 at 1:55:27 PM UTC+1, Norman Megill wrote:
We could add ph to every such hypothesis to make it more general-purpose, but 99% of the time it wouldn't be needed and would make all other proofs using it (as well as the theorem itself) slightly longer. Not to mention that it would be a huge retrofit to do this throughout set.mm. I will concede there may be a few cases where it would be advantageous to do things other than prove a simple substitution with the hypothesis, but overall I believe it is rare and does not justify adding ph everywhere.I tried to identify all the theorems in set.mm (excluding the mathboxes) which would be concerned - I found about 70 of them (see attachment deduct_th_eq_hyp.txt). On the other hand, there are about 50 theorema in deduction form having the form $e |- ( ( ph /\ x = ... ) -> ... ) $. (see attachment deduct_th_ph_eq_hyp.txt). So there is no big difference. Therefore, I still would propose to recommend to use the form $e |- ( ( ph /\ x = ... ) -> ... ) $. in deduction style. Already existing theorems need not to be rewritten (by the way, many of them have no "d" at the end..).
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 meta...@googlegroups.com.
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/3620ab9b-f405-43d2-821f-e15b56977eb0%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metamath/3620ab9b-f405-43d2-821f-e15b56977eb0%40googlegroups.com.
done, and I stumbled into another obstacle, related to fsum1p :)