Metamath Proof Explorer


Theorem etransclem3

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

Ref Expression
Hypotheses etransclem3.n ( 𝜑𝑃 ∈ ℕ )
etransclem3.c ( 𝜑𝐶 : ( 0 ... 𝑀 ) ⟶ ( 0 ... 𝑁 ) )
etransclem3.j ( 𝜑𝐽 ∈ ( 0 ... 𝑀 ) )
etransclem3.4 ( 𝜑𝐾 ∈ ℤ )
Assertion etransclem3 ( 𝜑 → if ( 𝑃 < ( 𝐶𝐽 ) , 0 , ( ( ( ! ‘ 𝑃 ) / ( ! ‘ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) · ( ( 𝐾𝐽 ) ↑ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) ) ∈ ℤ )

Proof

Step Hyp Ref Expression
1 etransclem3.n ( 𝜑𝑃 ∈ ℕ )
2 etransclem3.c ( 𝜑𝐶 : ( 0 ... 𝑀 ) ⟶ ( 0 ... 𝑁 ) )
3 etransclem3.j ( 𝜑𝐽 ∈ ( 0 ... 𝑀 ) )
4 etransclem3.4 ( 𝜑𝐾 ∈ ℤ )
5 0zd ( ( 𝜑𝑃 < ( 𝐶𝐽 ) ) → 0 ∈ ℤ )
6 0zd ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → 0 ∈ ℤ )
7 1 nnzd ( 𝜑𝑃 ∈ ℤ )
8 7 adantr ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → 𝑃 ∈ ℤ )
9 2 3 ffvelrnd ( 𝜑 → ( 𝐶𝐽 ) ∈ ( 0 ... 𝑁 ) )
10 9 elfzelzd ( 𝜑 → ( 𝐶𝐽 ) ∈ ℤ )
11 7 10 zsubcld ( 𝜑 → ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ℤ )
12 11 adantr ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ℤ )
13 10 zred ( 𝜑 → ( 𝐶𝐽 ) ∈ ℝ )
14 13 adantr ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝐶𝐽 ) ∈ ℝ )
15 8 zred ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → 𝑃 ∈ ℝ )
16 simpr ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ¬ 𝑃 < ( 𝐶𝐽 ) )
17 14 15 16 nltled ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝐶𝐽 ) ≤ 𝑃 )
18 15 14 subge0d ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 0 ≤ ( 𝑃 − ( 𝐶𝐽 ) ) ↔ ( 𝐶𝐽 ) ≤ 𝑃 ) )
19 17 18 mpbird ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → 0 ≤ ( 𝑃 − ( 𝐶𝐽 ) ) )
20 elfzle1 ( ( 𝐶𝐽 ) ∈ ( 0 ... 𝑁 ) → 0 ≤ ( 𝐶𝐽 ) )
21 9 20 syl ( 𝜑 → 0 ≤ ( 𝐶𝐽 ) )
22 1 nnred ( 𝜑𝑃 ∈ ℝ )
23 22 13 subge02d ( 𝜑 → ( 0 ≤ ( 𝐶𝐽 ) ↔ ( 𝑃 − ( 𝐶𝐽 ) ) ≤ 𝑃 ) )
24 21 23 mpbid ( 𝜑 → ( 𝑃 − ( 𝐶𝐽 ) ) ≤ 𝑃 )
25 24 adantr ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝑃 − ( 𝐶𝐽 ) ) ≤ 𝑃 )
26 6 8 12 19 25 elfzd ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ( 0 ... 𝑃 ) )
27 permnn ( ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ( 0 ... 𝑃 ) → ( ( ! ‘ 𝑃 ) / ( ! ‘ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) ∈ ℕ )
28 26 27 syl ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( ( ! ‘ 𝑃 ) / ( ! ‘ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) ∈ ℕ )
29 28 nnzd ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( ( ! ‘ 𝑃 ) / ( ! ‘ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) ∈ ℤ )
30 3 elfzelzd ( 𝜑𝐽 ∈ ℤ )
31 4 30 zsubcld ( 𝜑 → ( 𝐾𝐽 ) ∈ ℤ )
32 31 adantr ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝐾𝐽 ) ∈ ℤ )
33 elnn0z ( ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ℕ0 ↔ ( ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ℤ ∧ 0 ≤ ( 𝑃 − ( 𝐶𝐽 ) ) ) )
34 12 19 33 sylanbrc ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ℕ0 )
35 zexpcl ( ( ( 𝐾𝐽 ) ∈ ℤ ∧ ( 𝑃 − ( 𝐶𝐽 ) ) ∈ ℕ0 ) → ( ( 𝐾𝐽 ) ↑ ( 𝑃 − ( 𝐶𝐽 ) ) ) ∈ ℤ )
36 32 34 35 syl2anc ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( ( 𝐾𝐽 ) ↑ ( 𝑃 − ( 𝐶𝐽 ) ) ) ∈ ℤ )
37 29 36 zmulcld ( ( 𝜑 ∧ ¬ 𝑃 < ( 𝐶𝐽 ) ) → ( ( ( ! ‘ 𝑃 ) / ( ! ‘ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) · ( ( 𝐾𝐽 ) ↑ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) ∈ ℤ )
38 5 37 ifclda ( 𝜑 → if ( 𝑃 < ( 𝐶𝐽 ) , 0 , ( ( ( ! ‘ 𝑃 ) / ( ! ‘ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) · ( ( 𝐾𝐽 ) ↑ ( 𝑃 − ( 𝐶𝐽 ) ) ) ) ) ∈ ℤ )