| Step | Hyp | Ref
| Expression |
| 1 | | fveq2 5558 |
. . 3
⊢ (𝑤 = 0 → (!‘𝑤) =
(!‘0)) |
| 2 | | oveq2 5930 |
. . . 4
⊢ (𝑤 = 0 → (1...𝑤) = (1...0)) |
| 3 | 2 | prodeq1d 11729 |
. . 3
⊢ (𝑤 = 0 → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...0)𝑘) |
| 4 | 1, 3 | eqeq12d 2211 |
. 2
⊢ (𝑤 = 0 → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘0) = ∏𝑘 ∈ (1...0)𝑘)) |
| 5 | | fveq2 5558 |
. . 3
⊢ (𝑤 = 𝑥 → (!‘𝑤) = (!‘𝑥)) |
| 6 | | oveq2 5930 |
. . . 4
⊢ (𝑤 = 𝑥 → (1...𝑤) = (1...𝑥)) |
| 7 | 6 | prodeq1d 11729 |
. . 3
⊢ (𝑤 = 𝑥 → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...𝑥)𝑘) |
| 8 | 5, 7 | eqeq12d 2211 |
. 2
⊢ (𝑤 = 𝑥 → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘)) |
| 9 | | fveq2 5558 |
. . 3
⊢ (𝑤 = (𝑥 + 1) → (!‘𝑤) = (!‘(𝑥 + 1))) |
| 10 | | oveq2 5930 |
. . . 4
⊢ (𝑤 = (𝑥 + 1) → (1...𝑤) = (1...(𝑥 + 1))) |
| 11 | 10 | prodeq1d 11729 |
. . 3
⊢ (𝑤 = (𝑥 + 1) → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘) |
| 12 | 9, 11 | eqeq12d 2211 |
. 2
⊢ (𝑤 = (𝑥 + 1) → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)) |
| 13 | | fveq2 5558 |
. . 3
⊢ (𝑤 = 𝐴 → (!‘𝑤) = (!‘𝐴)) |
| 14 | | oveq2 5930 |
. . . 4
⊢ (𝑤 = 𝐴 → (1...𝑤) = (1...𝐴)) |
| 15 | 14 | prodeq1d 11729 |
. . 3
⊢ (𝑤 = 𝐴 → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...𝐴)𝑘) |
| 16 | 13, 15 | eqeq12d 2211 |
. 2
⊢ (𝑤 = 𝐴 → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘𝐴) = ∏𝑘 ∈ (1...𝐴)𝑘)) |
| 17 | | prod0 11750 |
. . 3
⊢
∏𝑘 ∈
∅ 𝑘 =
1 |
| 18 | | fz10 10121 |
. . . 4
⊢ (1...0) =
∅ |
| 19 | 18 | prodeq1i 11726 |
. . 3
⊢
∏𝑘 ∈
(1...0)𝑘 = ∏𝑘 ∈ ∅ 𝑘 |
| 20 | | fac0 10820 |
. . 3
⊢
(!‘0) = 1 |
| 21 | 17, 19, 20 | 3eqtr4ri 2228 |
. 2
⊢
(!‘0) = ∏𝑘 ∈ (1...0)𝑘 |
| 22 | | elnn0 9251 |
. . 3
⊢ (𝑥 ∈ ℕ0
↔ (𝑥 ∈ ℕ
∨ 𝑥 =
0)) |
| 23 | | simpr 110 |
. . . . . . 7
⊢ ((𝑥 ∈ ℕ ∧
(!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) |
| 24 | 23 | oveq1d 5937 |
. . . . . 6
⊢ ((𝑥 ∈ ℕ ∧
(!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → ((!‘𝑥) · (𝑥 + 1)) = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1))) |
| 25 | | nnnn0 9256 |
. . . . . . . . 9
⊢ (𝑥 ∈ ℕ → 𝑥 ∈
ℕ0) |
| 26 | | facp1 10822 |
. . . . . . . . 9
⊢ (𝑥 ∈ ℕ0
→ (!‘(𝑥 + 1)) =
((!‘𝑥) ·
(𝑥 + 1))) |
| 27 | 25, 26 | syl 14 |
. . . . . . . 8
⊢ (𝑥 ∈ ℕ →
(!‘(𝑥 + 1)) =
((!‘𝑥) ·
(𝑥 + 1))) |
| 28 | | elnnuz 9638 |
. . . . . . . . . 10
⊢ (𝑥 ∈ ℕ ↔ 𝑥 ∈
(ℤ≥‘1)) |
| 29 | 28 | biimpi 120 |
. . . . . . . . 9
⊢ (𝑥 ∈ ℕ → 𝑥 ∈
(ℤ≥‘1)) |
| 30 | | elfzelz 10100 |
. . . . . . . . . . 11
⊢ (𝑘 ∈ (1...(𝑥 + 1)) → 𝑘 ∈ ℤ) |
| 31 | 30 | zcnd 9449 |
. . . . . . . . . 10
⊢ (𝑘 ∈ (1...(𝑥 + 1)) → 𝑘 ∈ ℂ) |
| 32 | 31 | adantl 277 |
. . . . . . . . 9
⊢ ((𝑥 ∈ ℕ ∧ 𝑘 ∈ (1...(𝑥 + 1))) → 𝑘 ∈ ℂ) |
| 33 | | id 19 |
. . . . . . . . 9
⊢ (𝑘 = (𝑥 + 1) → 𝑘 = (𝑥 + 1)) |
| 34 | 29, 32, 33 | fprodp1 11765 |
. . . . . . . 8
⊢ (𝑥 ∈ ℕ →
∏𝑘 ∈ (1...(𝑥 + 1))𝑘 = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1))) |
| 35 | 27, 34 | eqeq12d 2211 |
. . . . . . 7
⊢ (𝑥 ∈ ℕ →
((!‘(𝑥 + 1)) =
∏𝑘 ∈ (1...(𝑥 + 1))𝑘 ↔ ((!‘𝑥) · (𝑥 + 1)) = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1)))) |
| 36 | 35 | adantr 276 |
. . . . . 6
⊢ ((𝑥 ∈ ℕ ∧
(!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → ((!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘 ↔ ((!‘𝑥) · (𝑥 + 1)) = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1)))) |
| 37 | 24, 36 | mpbird 167 |
. . . . 5
⊢ ((𝑥 ∈ ℕ ∧
(!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘) |
| 38 | 37 | ex 115 |
. . . 4
⊢ (𝑥 ∈ ℕ →
((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)) |
| 39 | | 1zzd 9353 |
. . . . . . 7
⊢ (𝑥 = 0 → 1 ∈
ℤ) |
| 40 | | 1cnd 8042 |
. . . . . . 7
⊢ (𝑥 = 0 → 1 ∈
ℂ) |
| 41 | | id 19 |
. . . . . . . 8
⊢ (𝑘 = 1 → 𝑘 = 1) |
| 42 | 41 | fprod1 11759 |
. . . . . . 7
⊢ ((1
∈ ℤ ∧ 1 ∈ ℂ) → ∏𝑘 ∈ (1...1)𝑘 = 1) |
| 43 | 39, 40, 42 | syl2anc 411 |
. . . . . 6
⊢ (𝑥 = 0 → ∏𝑘 ∈ (1...1)𝑘 = 1) |
| 44 | | oveq1 5929 |
. . . . . . . . 9
⊢ (𝑥 = 0 → (𝑥 + 1) = (0 + 1)) |
| 45 | | 0p1e1 9104 |
. . . . . . . . 9
⊢ (0 + 1) =
1 |
| 46 | 44, 45 | eqtrdi 2245 |
. . . . . . . 8
⊢ (𝑥 = 0 → (𝑥 + 1) = 1) |
| 47 | 46 | oveq2d 5938 |
. . . . . . 7
⊢ (𝑥 = 0 → (1...(𝑥 + 1)) =
(1...1)) |
| 48 | 47 | prodeq1d 11729 |
. . . . . 6
⊢ (𝑥 = 0 → ∏𝑘 ∈ (1...(𝑥 + 1))𝑘 = ∏𝑘 ∈ (1...1)𝑘) |
| 49 | | fv0p1e1 9105 |
. . . . . . 7
⊢ (𝑥 = 0 → (!‘(𝑥 + 1)) =
(!‘1)) |
| 50 | | fac1 10821 |
. . . . . . 7
⊢
(!‘1) = 1 |
| 51 | 49, 50 | eqtrdi 2245 |
. . . . . 6
⊢ (𝑥 = 0 → (!‘(𝑥 + 1)) = 1) |
| 52 | 43, 48, 51 | 3eqtr4rd 2240 |
. . . . 5
⊢ (𝑥 = 0 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘) |
| 53 | 52 | a1d 22 |
. . . 4
⊢ (𝑥 = 0 → ((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)) |
| 54 | 38, 53 | jaoi 717 |
. . 3
⊢ ((𝑥 ∈ ℕ ∨ 𝑥 = 0) → ((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)) |
| 55 | 22, 54 | sylbi 121 |
. 2
⊢ (𝑥 ∈ ℕ0
→ ((!‘𝑥) =
∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)) |
| 56 | 4, 8, 12, 16, 21, 55 | nn0ind 9440 |
1
⊢ (𝐴 ∈ ℕ0
→ (!‘𝐴) =
∏𝑘 ∈ (1...𝐴)𝑘) |