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 ⊢ φ → P ∈ ℕ
etransclem3.c ⊢ φ → C : 0 … M ⟶ 0 … N
etransclem3.j ⊢ φ → J ∈ 0 … M
etransclem3.4 ⊢ φ → K ∈ ℤ
Assertion etransclem3 ⊢ φ → if P < C ⁡ J 0 P ! P − C ⁡ J ! ⁢ K − J P − C ⁡ J ∈ ℤ

Proof

Step Hyp Ref Expression
1 etransclem3.n ⊢ φ → P ∈ ℕ
2 etransclem3.c ⊢ φ → C : 0 … M ⟶ 0 … N
3 etransclem3.j ⊢ φ → J ∈ 0 … M
4 etransclem3.4 ⊢ φ → K ∈ ℤ
5 0zd ⊢ φ ∧ P < C ⁡ J → 0 ∈ ℤ
6 0zd ⊢ φ ∧ ¬ P < C ⁡ J → 0 ∈ ℤ
7 1 nnzd ⊢ φ → P ∈ ℤ
8 7 adantr ⊢ φ ∧ ¬ P < C ⁡ J → P ∈ ℤ
9 2 3 ffvelcdmd ⊢ φ → C ⁡ J ∈ 0 … N
10 9 elfzelzd ⊢ φ → C ⁡ J ∈ ℤ
11 7 10 zsubcld ⊢ φ → P − C ⁡ J ∈ ℤ
12 11 adantr ⊢ φ ∧ ¬ P < C ⁡ J → P − C ⁡ J ∈ ℤ
13 10 zred ⊢ φ → C ⁡ J ∈ ℝ
14 13 adantr ⊢ φ ∧ ¬ P < C ⁡ J → C ⁡ J ∈ ℝ
15 8 zred ⊢ φ ∧ ¬ P < C ⁡ J → P ∈ ℝ
16 simpr ⊢ φ ∧ ¬ P < C ⁡ J → ¬ P < C ⁡ J
17 14 15 16 nltled ⊢ φ ∧ ¬ P < C ⁡ J → C ⁡ J ≤ P
18 15 14 subge0d ⊢ φ ∧ ¬ P < C ⁡ J → 0 ≤ P − C ⁡ J ↔ C ⁡ J ≤ P
19 17 18 mpbird ⊢ φ ∧ ¬ P < C ⁡ J → 0 ≤ P − C ⁡ J
20 elfzle1 ⊢ C ⁡ J ∈ 0 … N → 0 ≤ C ⁡ J
21 9 20 syl ⊢ φ → 0 ≤ C ⁡ J
22 1 nnred ⊢ φ → P ∈ ℝ
23 22 13 subge02d ⊢ φ → 0 ≤ C ⁡ J ↔ P − C ⁡ J ≤ P
24 21 23 mpbid ⊢ φ → P − C ⁡ J ≤ P
25 24 adantr ⊢ φ ∧ ¬ P < C ⁡ J → P − C ⁡ J ≤ P
26 6 8 12 19 25 elfzd ⊢ φ ∧ ¬ P < C ⁡ J → P − C ⁡ J ∈ 0 … P
27 permnn ⊢ P − C ⁡ J ∈ 0 … P → P ! P − C ⁡ J ! ∈ ℕ
28 26 27 syl ⊢ φ ∧ ¬ P < C ⁡ J → P ! P − C ⁡ J ! ∈ ℕ
29 28 nnzd ⊢ φ ∧ ¬ P < C ⁡ J → P ! P − C ⁡ J ! ∈ ℤ
30 3 elfzelzd ⊢ φ → J ∈ ℤ
31 4 30 zsubcld ⊢ φ → K − J ∈ ℤ
32 31 adantr ⊢ φ ∧ ¬ P < C ⁡ J → K − J ∈ ℤ
33 elnn0z ⊢ P − C ⁡ J ∈ ℕ 0 ↔ P − C ⁡ J ∈ ℤ ∧ 0 ≤ P − C ⁡ J
34 12 19 33 sylanbrc ⊢ φ ∧ ¬ P < C ⁡ J → P − C ⁡ J ∈ ℕ 0
35 zexpcl ⊢ K − J ∈ ℤ ∧ P − C ⁡ J ∈ ℕ 0 → K − J P − C ⁡ J ∈ ℤ
36 32 34 35 syl2anc ⊢ φ ∧ ¬ P < C ⁡ J → K − J P − C ⁡ J ∈ ℤ
37 29 36 zmulcld ⊢ φ ∧ ¬ P < C ⁡ J → P ! P − C ⁡ J ! ⁢ K − J P − C ⁡ J ∈ ℤ
38 5 37 ifclda ⊢ φ → if P < C ⁡ J 0 P ! P − C ⁡ J ! ⁢ K − J P − C ⁡ J ∈ ℤ