Metamath Proof Explorer


Theorem etransclem27

Description: The N -th derivative of F applied to J is an integer. (Contributed by Glauco Siliprandi, 5-Apr-2020)

Ref Expression
Hypotheses etransclem27.s ( 𝜑𝑆 ∈ { ℝ , ℂ } )
etransclem27.x ( 𝜑𝑋 ∈ ( ( TopOpen ‘ ℂfld ) ↾t 𝑆 ) )
etransclem27.p ( 𝜑𝑃 ∈ ℕ )
etransclem27.h 𝐻 = ( 𝑗 ∈ ( 0 ... 𝑀 ) ↦ ( 𝑥𝑋 ↦ ( ( 𝑥𝑗 ) ↑ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) ) )
etransclem27.cfi ( 𝜑𝐶 ∈ Fin )
etransclem27.cf ( 𝜑𝐶 : dom 𝐶 ⟶ ( ℕ0m ( 0 ... 𝑀 ) ) )
etransclem27.g 𝐺 = ( 𝑥𝑋 ↦ Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝑥 ) )
etransclem27.jx ( 𝜑𝐽𝑋 )
etransclem27.jz ( 𝜑𝐽 ∈ ℤ )
Assertion etransclem27 ( 𝜑 → ( 𝐺𝐽 ) ∈ ℤ )

Proof

Step Hyp Ref Expression
1 etransclem27.s ( 𝜑𝑆 ∈ { ℝ , ℂ } )
2 etransclem27.x ( 𝜑𝑋 ∈ ( ( TopOpen ‘ ℂfld ) ↾t 𝑆 ) )
3 etransclem27.p ( 𝜑𝑃 ∈ ℕ )
4 etransclem27.h 𝐻 = ( 𝑗 ∈ ( 0 ... 𝑀 ) ↦ ( 𝑥𝑋 ↦ ( ( 𝑥𝑗 ) ↑ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) ) )
5 etransclem27.cfi ( 𝜑𝐶 ∈ Fin )
6 etransclem27.cf ( 𝜑𝐶 : dom 𝐶 ⟶ ( ℕ0m ( 0 ... 𝑀 ) ) )
7 etransclem27.g 𝐺 = ( 𝑥𝑋 ↦ Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝑥 ) )
8 etransclem27.jx ( 𝜑𝐽𝑋 )
9 etransclem27.jz ( 𝜑𝐽 ∈ ℤ )
10 fveq2 ( 𝑥 = 𝐽 → ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝑥 ) = ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) )
11 10 prodeq2ad ( 𝑥 = 𝐽 → ∏ 𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝑥 ) = ∏ 𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) )
12 11 sumeq2sdv ( 𝑥 = 𝐽 → Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝑥 ) = Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) )
13 dmfi ( 𝐶 ∈ Fin → dom 𝐶 ∈ Fin )
14 5 13 syl ( 𝜑 → dom 𝐶 ∈ Fin )
15 fzfid ( ( 𝜑𝑙 ∈ dom 𝐶 ) → ( 0 ... 𝑀 ) ∈ Fin )
16 1 ad2antrr ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 𝑆 ∈ { ℝ , ℂ } )
17 2 ad2antrr ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 𝑋 ∈ ( ( TopOpen ‘ ℂfld ) ↾t 𝑆 ) )
18 3 ad2antrr ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 𝑃 ∈ ℕ )
19 etransclem5 ( 𝑗 ∈ ( 0 ... 𝑀 ) ↦ ( 𝑥𝑋 ↦ ( ( 𝑥𝑗 ) ↑ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) ) ) = ( 𝑧 ∈ ( 0 ... 𝑀 ) ↦ ( 𝑦𝑋 ↦ ( ( 𝑦𝑧 ) ↑ if ( 𝑧 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) ) )
20 4 19 eqtri 𝐻 = ( 𝑧 ∈ ( 0 ... 𝑀 ) ↦ ( 𝑦𝑋 ↦ ( ( 𝑦𝑧 ) ↑ if ( 𝑧 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) ) )
21 simpr ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 𝑗 ∈ ( 0 ... 𝑀 ) )
22 6 ffvelrnda ( ( 𝜑𝑙 ∈ dom 𝐶 ) → ( 𝐶𝑙 ) ∈ ( ℕ0m ( 0 ... 𝑀 ) ) )
23 elmapi ( ( 𝐶𝑙 ) ∈ ( ℕ0m ( 0 ... 𝑀 ) ) → ( 𝐶𝑙 ) : ( 0 ... 𝑀 ) ⟶ ℕ0 )
24 22 23 syl ( ( 𝜑𝑙 ∈ dom 𝐶 ) → ( 𝐶𝑙 ) : ( 0 ... 𝑀 ) ⟶ ℕ0 )
25 24 ffvelrnda ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( 𝐶𝑙 ) ‘ 𝑗 ) ∈ ℕ0 )
26 16 17 18 20 21 25 etransclem20 ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) : 𝑋 ⟶ ℂ )
27 8 ad2antrr ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 𝐽𝑋 )
28 26 27 ffvelrnd ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) ∈ ℂ )
29 15 28 fprodcl ( ( 𝜑𝑙 ∈ dom 𝐶 ) → ∏ 𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) ∈ ℂ )
30 14 29 fsumcl ( 𝜑 → Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) ∈ ℂ )
31 7 12 8 30 fvmptd3 ( 𝜑 → ( 𝐺𝐽 ) = Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) )
32 16 17 18 20 21 25 27 etransclem21 ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) = if ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) , 0 , ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ) )
33 iftrue ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) → if ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) , 0 , ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ) = 0 )
34 0zd ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) → 0 ∈ ℤ )
35 33 34 eqeltrd ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) → if ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) , 0 , ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ) ∈ ℤ )
36 35 adantl ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → if ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) , 0 , ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ) ∈ ℤ )
37 0zd ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → 0 ∈ ℤ )
38 nnm1nn0 ( 𝑃 ∈ ℕ → ( 𝑃 − 1 ) ∈ ℕ0 )
39 3 38 syl ( 𝜑 → ( 𝑃 − 1 ) ∈ ℕ0 )
40 3 nnnn0d ( 𝜑𝑃 ∈ ℕ0 )
41 39 40 ifcld ( 𝜑 → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℕ0 )
42 41 nn0zd ( 𝜑 → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℤ )
43 42 ad3antrrr ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℤ )
44 25 nn0zd ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( 𝐶𝑙 ) ‘ 𝑗 ) ∈ ℤ )
45 44 adantr ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( 𝐶𝑙 ) ‘ 𝑗 ) ∈ ℤ )
46 43 45 zsubcld ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ℤ )
47 45 zred ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( 𝐶𝑙 ) ‘ 𝑗 ) ∈ ℝ )
48 43 zred ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℝ )
49 simpr ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) )
50 47 48 49 nltled ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( 𝐶𝑙 ) ‘ 𝑗 ) ≤ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) )
51 48 47 subge0d ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( 0 ≤ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ↔ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ≤ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) )
52 50 51 mpbird ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → 0 ≤ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) )
53 0red ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 0 ∈ ℝ )
54 25 nn0red ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( 𝐶𝑙 ) ‘ 𝑗 ) ∈ ℝ )
55 41 nn0red ( 𝜑 → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℝ )
56 55 ad2antrr ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℝ )
57 25 nn0ge0d ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → 0 ≤ ( ( 𝐶𝑙 ) ‘ 𝑗 ) )
58 53 54 56 57 lesub2dd ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ≤ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − 0 ) )
59 56 recnd ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ∈ ℂ )
60 59 subid1d ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − 0 ) = if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) )
61 58 60 breqtrd ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ≤ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) )
62 61 adantr ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ≤ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) )
63 37 43 46 52 62 elfzd ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ( 0 ... if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) )
64 permnn ( ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ( 0 ... if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) → ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ∈ ℕ )
65 63 64 syl ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ∈ ℕ )
66 65 nnzd ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ∈ ℤ )
67 9 ad3antrrr ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → 𝐽 ∈ ℤ )
68 elfzelz ( 𝑗 ∈ ( 0 ... 𝑀 ) → 𝑗 ∈ ℤ )
69 68 ad2antlr ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → 𝑗 ∈ ℤ )
70 67 69 zsubcld ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( 𝐽𝑗 ) ∈ ℤ )
71 elnn0z ( ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ℕ0 ↔ ( ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ℤ ∧ 0 ≤ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) )
72 46 52 71 sylanbrc ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ℕ0 )
73 zexpcl ( ( ( 𝐽𝑗 ) ∈ ℤ ∧ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ∈ ℕ0 ) → ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ∈ ℤ )
74 70 72 73 syl2anc ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ∈ ℤ )
75 66 74 zmulcld ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ∈ ℤ )
76 37 75 ifcld ( ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) ∧ ¬ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) → if ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) , 0 , ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ) ∈ ℤ )
77 36 76 pm2.61dan ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → if ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) < ( ( 𝐶𝑙 ) ‘ 𝑗 ) , 0 , ( ( ( ! ‘ if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) ) / ( ! ‘ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) · ( ( 𝐽𝑗 ) ↑ ( if ( 𝑗 = 0 , ( 𝑃 − 1 ) , 𝑃 ) − ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ) ) ) ∈ ℤ )
78 32 77 eqeltrd ( ( ( 𝜑𝑙 ∈ dom 𝐶 ) ∧ 𝑗 ∈ ( 0 ... 𝑀 ) ) → ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) ∈ ℤ )
79 15 78 fprodzcl ( ( 𝜑𝑙 ∈ dom 𝐶 ) → ∏ 𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) ∈ ℤ )
80 14 79 fsumzcl ( 𝜑 → Σ 𝑙 ∈ dom 𝐶𝑗 ∈ ( 0 ... 𝑀 ) ( ( ( 𝑆 D𝑛 ( 𝐻𝑗 ) ) ‘ ( ( 𝐶𝑙 ) ‘ 𝑗 ) ) ‘ 𝐽 ) ∈ ℤ )
81 31 80 eqeltrd ( 𝜑 → ( 𝐺𝐽 ) ∈ ℤ )