HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem fsum0diag4 7384
Description: Two ways to express "the sum of A(j) x. B(k) where j + k <_ N."
Assertion
Ref Expression
fsum0diag4 |- ((N e. NN0 /\ A.j e. (0...N)A e. CC /\ A.k e. (0...N)B e. CC) -> sum_j e. (0...N)sum_k e. (0...(N - j))(A x. B) = sum_k e. (0...N)(B x. sum_j e. (0...(N - k))A))
Distinct variable groups:   A,k   B,j   j,k,N

Proof of Theorem fsum0diag4
StepHypRef Expression
1 elfzuz3 6538 . . . . . . . . . . . . . . . . 17 |- ((N e. NN0 /\ m e. (0...N)) -> N e. (ZZ>` m))
2 0z 6256 . . . . . . . . . . . . . . . . . 18 |- 0 e. ZZ
3 fzss2 6564 . . . . . . . . . . . . . . . . . 18 |- ((N e. (ZZ>` m) /\ 0 e. ZZ) -> (0...m) (_ (0...N))
42, 3mpan2 699 . . . . . . . . . . . . . . . . 17 |- (N e. (ZZ>` m) -> (0...m) (_ (0...N))
51, 4syl 10 . . . . . . . . . . . . . . . 16 |- ((N e. NN0 /\ m e. (0...N)) -> (0...m) (_ (0...N))
65sseld 2111 . . . . . . . . . . . . . . 15 |- ((N e. NN0 /\ m e. (0...N)) -> (k e. (0...m) -> k e. (0...N)))
76imim1d 28 . . . . . . . . . . . . . 14 |- ((N e. NN0 /\ m e. (0...N)) -> ((k e. (0...N) -> B e. CC) -> (k e. (0...m) -> B e. CC)))
87adantlr 393 . . . . . . . . . . . . 13 |- (((N e. NN0 /\ A.j e. (0...N)A e. CC) /\ m e. (0...N)) -> ((k e. (0...N) -> B e. CC) -> (k e. (0...m) -> B e. CC)))
9 mulcom 5395 . . . . . . . . . . . . . . . 16 |- (([_(m - k) / j]_A e. CC /\ B e. CC) -> ([_(m - k) / j]_A x. B) = (B x. [_(m - k) / j]_A))
10 ra4csbela 2086 . . . . . . . . . . . . . . . . . . . . 21 |- (((m - k) e. (0...N) /\ A.j e. (0...N)A e. CC) -> [_(m - k) / j]_A e. CC)
11 elfzle2 6544 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (k e. (0...m) -> k <_ m)
1211adantl 388 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- ((m e. (0...N) /\ k e. (0...m)) -> k <_ m)
13 subge0 5763 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- ((m e. RR /\ k e. RR) -> (0 <_ (m - k) <-> k <_ m))
14 elfzelz 6542 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (m e. (0...N) -> m e. ZZ)
15 zre 6249 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (m e. ZZ -> m e. RR)
1614, 15syl 10 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (m e. (0...N) -> m e. RR)
17 elfzelz 6542 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (k e. (0...m) -> k e. ZZ)
18 zre 6249 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (k e. ZZ -> k e. RR)
1917, 18syl 10 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (k e. (0...m) -> k e. RR)
2013, 16, 19syl2an 456 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- ((m e. (0...N) /\ k e. (0...m)) -> (0 <_ (m - k) <-> k <_ m))
2112, 20mpbird 194 . . . . . . . . . . . . . . . . . . . . . . . 24 |- ((m e. (0...N) /\ k e. (0...m)) -> 0 <_ (m - k))
2221adantll 392 . . . . . . . . . . . . . . . . . . . . . . 23 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> 0 <_ (m - k))
23 zsubcl 6278 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- ((m e. ZZ /\ k e. ZZ) -> (m - k) e. ZZ)
2423, 14, 17syl2an 456 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- ((m e. (0...N) /\ k e. (0...m)) -> (m - k) e. ZZ)
25 zre 6249 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- ((m - k) e. ZZ -> (m - k) e. RR)
2624, 25syl 10 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- ((m e. (0...N) /\ k e. (0...m)) -> (m - k) e. RR)
2726adantll 392 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> (m - k) e. RR)
2816ad2antlr 405 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> m e. RR)
29 nn0re 6218 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (N e. NN0 -> N e. RR)
3029ad2antrr 404 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> N e. RR)
31 elfzle1 6543 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- (k e. (0...m) -> 0 <_ k)
3231adantl 388 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- ((m e. (0...N) /\ k e. (0...m)) -> 0 <_ k)
33 subge02 5766 . . . . . . . . . . . . . . . . . . . . . . . . . . 27 |- ((m e. RR /\ k e. RR) -> (0 <_ k <-> (m - k) <_ m))
3433, 16, 19syl2an 456 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- ((m e. (0...N) /\ k e. (0...m)) -> (0 <_ k <-> (m - k) <_ m))
3532, 34mpbid 193 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- ((m e. (0...N) /\ k e. (0...m)) -> (m - k) <_ m)
3635adantll 392 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> (m - k) <_ m)
37 elfzle2 6544 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (m e. (0...N) -> m <_ N)
3837ad2antlr 405 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> m <_ N)
3927, 28, 30, 36, 38letrd 5615 . . . . . . . . . . . . . . . . . . . . . . 23 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> (m - k) <_ N)
4022, 39jca 286 . . . . . . . . . . . . . . . . . . . . . 22 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> (0 <_ (m - k) /\ (m - k) <_ N))
41 elfz 6531 . . . . . . . . . . . . . . . . . . . . . . . . . 26 |- (((m - k) e. ZZ /\ 0 e. ZZ /\ N e. ZZ) -> ((m - k) e. (0...N) <-> (0 <_ (m - k) /\ (m - k) <_ N)))
422, 41mp3an2 907 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (((m - k) e. ZZ /\ N e. ZZ) -> ((m - k) e. (0...N) <-> (0 <_ (m - k) /\ (m - k) <_ N)))
43 nn0z 6264 . . . . . . . . . . . . . . . . . . . . . . . . 25 |- (N e. NN0 -> N e. ZZ)
4442, 24, 43syl2an 456 . . . . . . . . . . . . . . . . . . . . . . . 24 |- (((m e. (0...N) /\ k e. (0...m)) /\ N e. NN0) -> ((m - k) e. (0...N) <-> (0 <_ (m - k) /\ (m - k) <_ N)))
4544ancoms 438 . . . . . . . . . . . . . . . . . . . . . . 23 |- ((N e. NN0 /\ (m e. (0...N) /\ k e. (0...m))) -> ((m - k) e. (0...N) <-> (0 <_ (m - k) /\ (m - k) <_ N)))
4645anassrs 443 . . . . . . . . . . . . . . . . . . . . . 22 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> ((m - k) e. (0...N) <-> (0 <_ (m - k) /\ (m - k) <_ N)))
4740, 46mpbird 194 . . . . . . . . . . . . . . . . . . . . 21 |- (((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) -> (m - k) e. (0...N))
4810, 47sylan 450 . . . . . . . . . . . . . . . . . . . 20 |- ((((N e. NN0 /\ m e. (0...N)) /\ k e. (0...m)) /\ A.j e. (0...N)A e. CC) -> [_(m - k) / j]_A e. CC)
4948exp41 382 . . . . . . . . . . . . . . . . . . 19 |- (N e. NN0 -> (m e. (0...N) -> (k e. (0...m) -> (A.j e. (0...N)A e. CC -> [_(m - k) / j]_A e. CC))))
5049com23 32 . . . . . . . . . . . . . . . . . 18 |- (N e. NN0 -> (k e. (0...m) -> (m e. (0...N) -> (A.j e. (0...N)A e. CC -> [_(m - k) / j]_A e. CC))))
5150com24 37 . . . . . . . . . . . . . . . . 17 |- (N e. NN0 -> (A.j e. (0...N)A e. CC -> (m e. (0...N) -> (k e. (0...m) -> [_(m - k) / j]_A e. CC))))
5251imp41 366 . . . . . . . . . . . . . . . 16 |- ((((N e. NN0 /\ A.j e. (0...N)A e. CC) /\ m e. (0...N)) /\ k e. (0...m)) -> [_(m - k) / j]_A e. CC)
539, 52sylan 450 . . . . . . . . . . . . . . 15 |- (((((N e. NN0 /\ A.j e. (0...N)A e. CC) /\ m e. (0...N)) /\ k e. (0...m)) /\ B e. CC) -> ([_(m - k) / j]_A x. B) = (B x. [_(m - k) / j]_A))
5453exp31 376 . . . . . . . . . . . . . 14 |- (((N e. NN0 /\ A.j e. (0...N)A e. CC) /\ m e. (0...N)) -> (k e. (0...m) -> (B e. CC -> ([_(m - k) / j]_A x. B) = (B x. [_(m - k) / j]_A))))
5554a2d 13 . . . . . . . . . . . . 13 |- (((N e. NN0 /\ A.j e. (0...N)A e. CC) /\ m e. (0...N)) -> ((k e. (0...m) -> B e. CC) -> (k e. (0...m) -> ([_(m - k) / j]_A x. B) = (B x. [_(m - k) / j]_A))))
568, 55syld 27 . . . . . . . . . . . 12 |- (((N e. NN0 /\ A.j e. (0...N)A e. CC) /\ m e. (