Metamath Proof Explorer


Theorem fprodrev

Description: Reversal of a finite product. (Contributed by Scott Fenton, 5-Jan-2018)

Ref Expression
Hypotheses fprodshft.1 ⊢ φ → K ∈ ℤ
fprodshft.2 ⊢ φ → M ∈ ℤ
fprodshft.3 ⊢ φ → N ∈ ℤ
fprodshft.4 ⊢ φ ∧ j ∈ M … N → A ∈ ℂ
fprodrev.5 ⊢ j = K − k → A = B
Assertion fprodrev ⊢ φ → ∏ j = M N A = ∏ k = K − N K − M B

Proof

Step Hyp Ref Expression
1 fprodshft.1 ⊢ φ → K ∈ ℤ
2 fprodshft.2 ⊢ φ → M ∈ ℤ
3 fprodshft.3 ⊢ φ → N ∈ ℤ
4 fprodshft.4 ⊢ φ ∧ j ∈ M … N → A ∈ ℂ
5 fprodrev.5 ⊢ j = K − k → A = B
6 fzfid ⊢ φ → K − N … K − M ∈ Fin
7 eqid ⊢ j ∈ K − N … K − M ⟼ K − j = j ∈ K − N … K − M ⟼ K − j
8 1 adantr ⊢ φ ∧ j ∈ K − N … K − M → K ∈ ℤ
9 elfzelz ⊢ j ∈ K − N … K − M → j ∈ ℤ
10 9 adantl ⊢ φ ∧ j ∈ K − N … K − M → j ∈ ℤ
11 8 10 zsubcld ⊢ φ ∧ j ∈ K − N … K − M → K − j ∈ ℤ
12 1 adantr ⊢ φ ∧ k ∈ M … N → K ∈ ℤ
13 elfzelz ⊢ k ∈ M … N → k ∈ ℤ
14 13 adantl ⊢ φ ∧ k ∈ M … N → k ∈ ℤ
15 12 14 zsubcld ⊢ φ ∧ k ∈ M … N → K − k ∈ ℤ
16 simprr ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → k = K − j
17 simprl ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → j ∈ K − N … K − M
18 2 adantr ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → M ∈ ℤ
19 3 adantr ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → N ∈ ℤ
20 1 adantr ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → K ∈ ℤ
21 9 ad2antrl ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → j ∈ ℤ
22 fzrev ⊢ M ∈ ℤ ∧ N ∈ ℤ ∧ K ∈ ℤ ∧ j ∈ ℤ → j ∈ K − N … K − M ↔ K − j ∈ M … N
23 18 19 20 21 22 syl22anc ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → j ∈ K − N … K − M ↔ K − j ∈ M … N
24 17 23 mpbid ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → K − j ∈ M … N
25 16 24 eqeltrd ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → k ∈ M … N
26 oveq2 ⊢ k = K − j → K − k = K − K − j
27 26 ad2antll ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → K − k = K − K − j
28 1 zcnd ⊢ φ → K ∈ ℂ
29 28 adantr ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → K ∈ ℂ
30 9 zcnd ⊢ j ∈ K − N … K − M → j ∈ ℂ
31 30 ad2antrl ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → j ∈ ℂ
32 29 31 nncand ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → K − K − j = j
33 27 32 eqtr2d ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → j = K − k
34 25 33 jca ⊢ φ ∧ j ∈ K − N … K − M ∧ k = K − j → k ∈ M … N ∧ j = K − k
35 simprr ⊢ φ ∧ k ∈ M … N ∧ j = K − k → j = K − k
36 simprl ⊢ φ ∧ k ∈ M … N ∧ j = K − k → k ∈ M … N
37 2 adantr ⊢ φ ∧ k ∈ M … N ∧ j = K − k → M ∈ ℤ
38 3 adantr ⊢ φ ∧ k ∈ M … N ∧ j = K − k → N ∈ ℤ
39 1 adantr ⊢ φ ∧ k ∈ M … N ∧ j = K − k → K ∈ ℤ
40 13 ad2antrl ⊢ φ ∧ k ∈ M … N ∧ j = K − k → k ∈ ℤ
41 fzrev2 ⊢ M ∈ ℤ ∧ N ∈ ℤ ∧ K ∈ ℤ ∧ k ∈ ℤ → k ∈ M … N ↔ K − k ∈ K − N … K − M
42 37 38 39 40 41 syl22anc ⊢ φ ∧ k ∈ M … N ∧ j = K − k → k ∈ M … N ↔ K − k ∈ K − N … K − M
43 36 42 mpbid ⊢ φ ∧ k ∈ M … N ∧ j = K − k → K − k ∈ K − N … K − M
44 35 43 eqeltrd ⊢ φ ∧ k ∈ M … N ∧ j = K − k → j ∈ K − N … K − M
45 oveq2 ⊢ j = K − k → K − j = K − K − k
46 45 ad2antll ⊢ φ ∧ k ∈ M … N ∧ j = K − k → K − j = K − K − k
47 28 adantr ⊢ φ ∧ k ∈ M … N ∧ j = K − k → K ∈ ℂ
48 13 zcnd ⊢ k ∈ M … N → k ∈ ℂ
49 48 ad2antrl ⊢ φ ∧ k ∈ M … N ∧ j = K − k → k ∈ ℂ
50 47 49 nncand ⊢ φ ∧ k ∈ M … N ∧ j = K − k → K − K − k = k
51 46 50 eqtr2d ⊢ φ ∧ k ∈ M … N ∧ j = K − k → k = K − j
52 44 51 jca ⊢ φ ∧ k ∈ M … N ∧ j = K − k → j ∈ K − N … K − M ∧ k = K − j
53 34 52 impbida ⊢ φ → j ∈ K − N … K − M ∧ k = K − j ↔ k ∈ M … N ∧ j = K − k
54 7 11 15 53 f1od ⊢ φ → j ∈ K − N … K − M ⟼ K − j : K − N … K − M ⟶ 1-1 onto M … N
55 oveq2 ⊢ j = k → K − j = K − k
56 ovex ⊢ K − k ∈ V
57 55 7 56 fvmpt ⊢ k ∈ K − N … K − M → j ∈ K − N … K − M ⟼ K − j ⁡ k = K − k
58 57 adantl ⊢ φ ∧ k ∈ K − N … K − M → j ∈ K − N … K − M ⟼ K − j ⁡ k = K − k
59 5 6 54 58 4 fprodf1o ⊢ φ → ∏ j = M N A = ∏ k = K − N K − M B