Metamath Proof Explorer


Theorem etransclem7

Description: The given product is an integer. (Contributed by Glauco Siliprandi, 5-Apr-2020)

Ref Expression
Hypotheses etransclem7.n ⊢ φ → P ∈ ℕ
etransclem7.c ⊢ φ → C : 0 … M ⟶ 0 … N
etransclem7.j ⊢ φ → J ∈ 0 … M
Assertion etransclem7 ⊢ φ → ∏ j = 1 M if P < C ⁡ j 0 P ! P − C ⁡ j ! ⁢ J − j P − C ⁡ j ∈ ℤ

Proof

Step Hyp Ref Expression
1 etransclem7.n ⊢ φ → P ∈ ℕ
2 etransclem7.c ⊢ φ → C : 0 … M ⟶ 0 … N
3 etransclem7.j ⊢ φ → J ∈ 0 … M
4 fzfid ⊢ φ → 1 … M ∈ Fin
5 0zd ⊢ φ ∧ j ∈ 1 … M ∧ P < C ⁡ j → 0 ∈ ℤ
6 0zd ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → 0 ∈ ℤ
7 1 nnzd ⊢ φ → P ∈ ℤ
8 7 ad2antrr ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P ∈ ℤ
9 7 adantr ⊢ φ ∧ j ∈ 1 … M → P ∈ ℤ
10 2 adantr ⊢ φ ∧ j ∈ 1 … M → C : 0 … M ⟶ 0 … N
11 0zd ⊢ j ∈ 1 … M → 0 ∈ ℤ
12 fzp1ss ⊢ 0 ∈ ℤ → 0 + 1 … M ⊆ 0 … M
13 11 12 syl ⊢ j ∈ 1 … M → 0 + 1 … M ⊆ 0 … M
14 id ⊢ j ∈ 1 … M → j ∈ 1 … M
15 1e0p1 ⊢ 1 = 0 + 1
16 15 oveq1i ⊢ 1 … M = 0 + 1 … M
17 14 16 eleqtrdi ⊢ j ∈ 1 … M → j ∈ 0 + 1 … M
18 13 17 sseldd ⊢ j ∈ 1 … M → j ∈ 0 … M
19 18 adantl ⊢ φ ∧ j ∈ 1 … M → j ∈ 0 … M
20 10 19 ffvelcdmd ⊢ φ ∧ j ∈ 1 … M → C ⁡ j ∈ 0 … N
21 20 elfzelzd ⊢ φ ∧ j ∈ 1 … M → C ⁡ j ∈ ℤ
22 9 21 zsubcld ⊢ φ ∧ j ∈ 1 … M → P − C ⁡ j ∈ ℤ
23 22 adantr ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P − C ⁡ j ∈ ℤ
24 21 zred ⊢ φ ∧ j ∈ 1 … M → C ⁡ j ∈ ℝ
25 24 adantr ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → C ⁡ j ∈ ℝ
26 8 zred ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P ∈ ℝ
27 simpr ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → ¬ P < C ⁡ j
28 25 26 27 nltled ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → C ⁡ j ≤ P
29 26 25 subge0d ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → 0 ≤ P − C ⁡ j ↔ C ⁡ j ≤ P
30 28 29 mpbird ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → 0 ≤ P − C ⁡ j
31 elfzle1 ⊢ C ⁡ j ∈ 0 … N → 0 ≤ C ⁡ j
32 20 31 syl ⊢ φ ∧ j ∈ 1 … M → 0 ≤ C ⁡ j
33 32 adantr ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → 0 ≤ C ⁡ j
34 26 25 subge02d ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → 0 ≤ C ⁡ j ↔ P − C ⁡ j ≤ P
35 33 34 mpbid ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P − C ⁡ j ≤ P
36 6 8 23 30 35 elfzd ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P − C ⁡ j ∈ 0 … P
37 permnn ⊢ P − C ⁡ j ∈ 0 … P → P ! P − C ⁡ j ! ∈ ℕ
38 36 37 syl ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P ! P − C ⁡ j ! ∈ ℕ
39 38 nnzd ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P ! P − C ⁡ j ! ∈ ℤ
40 3 elfzelzd ⊢ φ → J ∈ ℤ
41 40 adantr ⊢ φ ∧ j ∈ 1 … M → J ∈ ℤ
42 elfzelz ⊢ j ∈ 1 … M → j ∈ ℤ
43 42 adantl ⊢ φ ∧ j ∈ 1 … M → j ∈ ℤ
44 41 43 zsubcld ⊢ φ ∧ j ∈ 1 … M → J − j ∈ ℤ
45 44 adantr ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → J − j ∈ ℤ
46 elnn0z ⊢ P − C ⁡ j ∈ ℕ 0 ↔ P − C ⁡ j ∈ ℤ ∧ 0 ≤ P − C ⁡ j
47 23 30 46 sylanbrc ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P − C ⁡ j ∈ ℕ 0
48 zexpcl ⊢ J − j ∈ ℤ ∧ P − C ⁡ j ∈ ℕ 0 → J − j P − C ⁡ j ∈ ℤ
49 45 47 48 syl2anc ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → J − j P − C ⁡ j ∈ ℤ
50 39 49 zmulcld ⊢ φ ∧ j ∈ 1 … M ∧ ¬ P < C ⁡ j → P ! P − C ⁡ j ! ⁢ J − j P − C ⁡ j ∈ ℤ
51 5 50 ifclda ⊢ φ ∧ j ∈ 1 … M → if P < C ⁡ j 0 P ! P − C ⁡ j ! ⁢ J − j P − C ⁡ j ∈ ℤ
52 4 51 fprodzcl ⊢ φ → ∏ j = 1 M if P < C ⁡ j 0 P ! P − C ⁡ j ! ⁢ J − j P − C ⁡ j ∈ ℤ