ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  fprodfac GIF version

Theorem fprodfac 11512
Description: Factorial using product notation. (Contributed by Scott Fenton, 15-Dec-2017.)
Assertion
Ref Expression
fprodfac (𝐴 ∈ ℕ0 → (!‘𝐴) = ∏𝑘 ∈ (1...𝐴)𝑘)
Distinct variable group:   𝐴,𝑘

Proof of Theorem fprodfac
Dummy variables 𝑤 𝑥 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 fveq2 5468 . . 3 (𝑤 = 0 → (!‘𝑤) = (!‘0))
2 oveq2 5832 . . . 4 (𝑤 = 0 → (1...𝑤) = (1...0))
32prodeq1d 11461 . . 3 (𝑤 = 0 → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...0)𝑘)
41, 3eqeq12d 2172 . 2 (𝑤 = 0 → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘0) = ∏𝑘 ∈ (1...0)𝑘))
5 fveq2 5468 . . 3 (𝑤 = 𝑥 → (!‘𝑤) = (!‘𝑥))
6 oveq2 5832 . . . 4 (𝑤 = 𝑥 → (1...𝑤) = (1...𝑥))
76prodeq1d 11461 . . 3 (𝑤 = 𝑥 → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...𝑥)𝑘)
85, 7eqeq12d 2172 . 2 (𝑤 = 𝑥 → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘))
9 fveq2 5468 . . 3 (𝑤 = (𝑥 + 1) → (!‘𝑤) = (!‘(𝑥 + 1)))
10 oveq2 5832 . . . 4 (𝑤 = (𝑥 + 1) → (1...𝑤) = (1...(𝑥 + 1)))
1110prodeq1d 11461 . . 3 (𝑤 = (𝑥 + 1) → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)
129, 11eqeq12d 2172 . 2 (𝑤 = (𝑥 + 1) → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘))
13 fveq2 5468 . . 3 (𝑤 = 𝐴 → (!‘𝑤) = (!‘𝐴))
14 oveq2 5832 . . . 4 (𝑤 = 𝐴 → (1...𝑤) = (1...𝐴))
1514prodeq1d 11461 . . 3 (𝑤 = 𝐴 → ∏𝑘 ∈ (1...𝑤)𝑘 = ∏𝑘 ∈ (1...𝐴)𝑘)
1613, 15eqeq12d 2172 . 2 (𝑤 = 𝐴 → ((!‘𝑤) = ∏𝑘 ∈ (1...𝑤)𝑘 ↔ (!‘𝐴) = ∏𝑘 ∈ (1...𝐴)𝑘))
17 prod0 11482 . . 3 𝑘 ∈ ∅ 𝑘 = 1
18 fz10 9948 . . . 4 (1...0) = ∅
1918prodeq1i 11458 . . 3 𝑘 ∈ (1...0)𝑘 = ∏𝑘 ∈ ∅ 𝑘
20 fac0 10602 . . 3 (!‘0) = 1
2117, 19, 203eqtr4ri 2189 . 2 (!‘0) = ∏𝑘 ∈ (1...0)𝑘
22 elnn0 9092 . . 3 (𝑥 ∈ ℕ0 ↔ (𝑥 ∈ ℕ ∨ 𝑥 = 0))
23 simpr 109 . . . . . . 7 ((𝑥 ∈ ℕ ∧ (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘)
2423oveq1d 5839 . . . . . 6 ((𝑥 ∈ ℕ ∧ (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → ((!‘𝑥) · (𝑥 + 1)) = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1)))
25 nnnn0 9097 . . . . . . . . 9 (𝑥 ∈ ℕ → 𝑥 ∈ ℕ0)
26 facp1 10604 . . . . . . . . 9 (𝑥 ∈ ℕ0 → (!‘(𝑥 + 1)) = ((!‘𝑥) · (𝑥 + 1)))
2725, 26syl 14 . . . . . . . 8 (𝑥 ∈ ℕ → (!‘(𝑥 + 1)) = ((!‘𝑥) · (𝑥 + 1)))
28 elnnuz 9475 . . . . . . . . . 10 (𝑥 ∈ ℕ ↔ 𝑥 ∈ (ℤ‘1))
2928biimpi 119 . . . . . . . . 9 (𝑥 ∈ ℕ → 𝑥 ∈ (ℤ‘1))
30 elfzelz 9928 . . . . . . . . . . 11 (𝑘 ∈ (1...(𝑥 + 1)) → 𝑘 ∈ ℤ)
3130zcnd 9287 . . . . . . . . . 10 (𝑘 ∈ (1...(𝑥 + 1)) → 𝑘 ∈ ℂ)
3231adantl 275 . . . . . . . . 9 ((𝑥 ∈ ℕ ∧ 𝑘 ∈ (1...(𝑥 + 1))) → 𝑘 ∈ ℂ)
33 id 19 . . . . . . . . 9 (𝑘 = (𝑥 + 1) → 𝑘 = (𝑥 + 1))
3429, 32, 33fprodp1 11497 . . . . . . . 8 (𝑥 ∈ ℕ → ∏𝑘 ∈ (1...(𝑥 + 1))𝑘 = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1)))
3527, 34eqeq12d 2172 . . . . . . 7 (𝑥 ∈ ℕ → ((!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘 ↔ ((!‘𝑥) · (𝑥 + 1)) = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1))))
3635adantr 274 . . . . . 6 ((𝑥 ∈ ℕ ∧ (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → ((!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘 ↔ ((!‘𝑥) · (𝑥 + 1)) = (∏𝑘 ∈ (1...𝑥)𝑘 · (𝑥 + 1))))
3724, 36mpbird 166 . . . . 5 ((𝑥 ∈ ℕ ∧ (!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘) → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)
3837ex 114 . . . 4 (𝑥 ∈ ℕ → ((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘))
39 1zzd 9194 . . . . . . 7 (𝑥 = 0 → 1 ∈ ℤ)
40 1cnd 7894 . . . . . . 7 (𝑥 = 0 → 1 ∈ ℂ)
41 id 19 . . . . . . . 8 (𝑘 = 1 → 𝑘 = 1)
4241fprod1 11491 . . . . . . 7 ((1 ∈ ℤ ∧ 1 ∈ ℂ) → ∏𝑘 ∈ (1...1)𝑘 = 1)
4339, 40, 42syl2anc 409 . . . . . 6 (𝑥 = 0 → ∏𝑘 ∈ (1...1)𝑘 = 1)
44 oveq1 5831 . . . . . . . . 9 (𝑥 = 0 → (𝑥 + 1) = (0 + 1))
45 0p1e1 8947 . . . . . . . . 9 (0 + 1) = 1
4644, 45eqtrdi 2206 . . . . . . . 8 (𝑥 = 0 → (𝑥 + 1) = 1)
4746oveq2d 5840 . . . . . . 7 (𝑥 = 0 → (1...(𝑥 + 1)) = (1...1))
4847prodeq1d 11461 . . . . . 6 (𝑥 = 0 → ∏𝑘 ∈ (1...(𝑥 + 1))𝑘 = ∏𝑘 ∈ (1...1)𝑘)
49 fv0p1e1 8948 . . . . . . 7 (𝑥 = 0 → (!‘(𝑥 + 1)) = (!‘1))
50 fac1 10603 . . . . . . 7 (!‘1) = 1
5149, 50eqtrdi 2206 . . . . . 6 (𝑥 = 0 → (!‘(𝑥 + 1)) = 1)
5243, 48, 513eqtr4rd 2201 . . . . 5 (𝑥 = 0 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘)
5352a1d 22 . . . 4 (𝑥 = 0 → ((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘))
5438, 53jaoi 706 . . 3 ((𝑥 ∈ ℕ ∨ 𝑥 = 0) → ((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘))
5522, 54sylbi 120 . 2 (𝑥 ∈ ℕ0 → ((!‘𝑥) = ∏𝑘 ∈ (1...𝑥)𝑘 → (!‘(𝑥 + 1)) = ∏𝑘 ∈ (1...(𝑥 + 1))𝑘))
564, 8, 12, 16, 21, 55nn0ind 9278 1 (𝐴 ∈ ℕ0 → (!‘𝐴) = ∏𝑘 ∈ (1...𝐴)𝑘)
Colors of variables: wff set class
Syntax hints:  wi 4  wa 103  wb 104  wo 698   = wceq 1335  wcel 2128  c0 3394  cfv 5170  (class class class)co 5824  cc 7730  0cc0 7732  1c1 7733   + caddc 7735   · cmul 7737  cn 8833  0cn0 9090  cz 9167  cuz 9439  ...cfz 9912  !cfa 10599  cprod 11447
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 604  ax-in2 605  ax-io 699  ax-5 1427  ax-7 1428  ax-gen 1429  ax-ie1 1473  ax-ie2 1474  ax-8 1484  ax-10 1485  ax-11 1486  ax-i12 1487  ax-bndl 1489  ax-4 1490  ax-17 1506  ax-i9 1510  ax-ial 1514  ax-i5r 1515  ax-13 2130  ax-14 2131  ax-ext 2139  ax-coll 4079  ax-sep 4082  ax-nul 4090  ax-pow 4135  ax-pr 4169  ax-un 4393  ax-setind 4496  ax-iinf 4547  ax-cnex 7823  ax-resscn 7824  ax-1cn 7825  ax-1re 7826  ax-icn 7827  ax-addcl 7828  ax-addrcl 7829  ax-mulcl 7830  ax-mulrcl 7831  ax-addcom 7832  ax-mulcom 7833  ax-addass 7834  ax-mulass 7835  ax-distr 7836  ax-i2m1 7837  ax-0lt1 7838  ax-1rid 7839  ax-0id 7840  ax-rnegex 7841  ax-precex 7842  ax-cnre 7843  ax-pre-ltirr 7844  ax-pre-ltwlin 7845  ax-pre-lttrn 7846  ax-pre-apti 7847  ax-pre-ltadd 7848  ax-pre-mulgt0 7849  ax-pre-mulext 7850  ax-arch 7851  ax-caucvg 7852
This theorem depends on definitions:  df-bi 116  df-dc 821  df-3or 964  df-3an 965  df-tru 1338  df-fal 1341  df-nf 1441  df-sb 1743  df-eu 2009  df-mo 2010  df-clab 2144  df-cleq 2150  df-clel 2153  df-nfc 2288  df-ne 2328  df-nel 2423  df-ral 2440  df-rex 2441  df-reu 2442  df-rmo 2443  df-rab 2444  df-v 2714  df-sbc 2938  df-csb 3032  df-dif 3104  df-un 3106  df-in 3108  df-ss 3115  df-nul 3395  df-if 3506  df-pw 3545  df-sn 3566  df-pr 3567  df-op 3569  df-uni 3773  df-int 3808  df-iun 3851  df-br 3966  df-opab 4026  df-mpt 4027  df-tr 4063  df-id 4253  df-po 4256  df-iso 4257  df-iord 4326  df-on 4328  df-ilim 4329  df-suc 4331  df-iom 4550  df-xp 4592  df-rel 4593  df-cnv 4594  df-co 4595  df-dm 4596  df-rn 4597  df-res 4598  df-ima 4599  df-iota 5135  df-fun 5172  df-fn 5173  df-f 5174  df-f1 5175  df-fo 5176  df-f1o 5177  df-fv 5178  df-isom 5179  df-riota 5780  df-ov 5827  df-oprab 5828  df-mpo 5829  df-1st 6088  df-2nd 6089  df-recs 6252  df-irdg 6317  df-frec 6338  df-1o 6363  df-oadd 6367  df-er 6480  df-en 6686  df-dom 6687  df-fin 6688  df-pnf 7914  df-mnf 7915  df-xr 7916  df-ltxr 7917  df-le 7918  df-sub 8048  df-neg 8049  df-reap 8450  df-ap 8457  df-div 8546  df-inn 8834  df-2 8892  df-3 8893  df-4 8894  df-n0 9091  df-z 9168  df-uz 9440  df-q 9529  df-rp 9561  df-fz 9913  df-fzo 10042  df-seqfrec 10345  df-exp 10419  df-fac 10600  df-ihash 10650  df-cj 10742  df-re 10743  df-im 10744  df-rsqrt 10898  df-abs 10899  df-clim 11176  df-proddc 11448
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator