Metamath Proof Explorer


Theorem pcqcl

Description: Closure of the general prime count function. (Contributed by Mario Carneiro, 23-Feb-2014)

Ref Expression
Assertion pcqcl ( ( 𝑃 ∈ ℙ ∧ ( 𝑁 ∈ ℚ ∧ 𝑁 ≠ 0 ) ) → ( 𝑃 pCnt 𝑁 ) ∈ ℤ )

Proof

Step Hyp Ref Expression
1 simprl ( ( 𝑃 ∈ ℙ ∧ ( 𝑁 ∈ ℚ ∧ 𝑁 ≠ 0 ) ) → 𝑁 ∈ ℚ )
2 elq ( 𝑁 ∈ ℚ ↔ ∃ 𝑥 ∈ ℤ ∃ 𝑦 ∈ ℕ 𝑁 = ( 𝑥 / 𝑦 ) )
3 1 2 sylib ( ( 𝑃 ∈ ℙ ∧ ( 𝑁 ∈ ℚ ∧ 𝑁 ≠ 0 ) ) → ∃ 𝑥 ∈ ℤ ∃ 𝑦 ∈ ℕ 𝑁 = ( 𝑥 / 𝑦 ) )
4 nncn ( 𝑦 ∈ ℕ → 𝑦 ∈ ℂ )
5 nnne0 ( 𝑦 ∈ ℕ → 𝑦 ≠ 0 )
6 4 5 div0d ( 𝑦 ∈ ℕ → ( 0 / 𝑦 ) = 0 )
7 6 ad2antll ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( 0 / 𝑦 ) = 0 )
8 oveq1 ( 𝑥 = 0 → ( 𝑥 / 𝑦 ) = ( 0 / 𝑦 ) )
9 8 eqeq1d ( 𝑥 = 0 → ( ( 𝑥 / 𝑦 ) = 0 ↔ ( 0 / 𝑦 ) = 0 ) )
10 7 9 syl5ibrcom ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( 𝑥 = 0 → ( 𝑥 / 𝑦 ) = 0 ) )
11 10 necon3d ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( ( 𝑥 / 𝑦 ) ≠ 0 → 𝑥 ≠ 0 ) )
12 an32 ( ( ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ∧ 𝑥 ≠ 0 ) ↔ ( ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) )
13 pcdiv ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) = ( ( 𝑃 pCnt 𝑥 ) − ( 𝑃 pCnt 𝑦 ) ) )
14 pczcl ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ) → ( 𝑃 pCnt 𝑥 ) ∈ ℕ0 )
15 14 nn0zd ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ) → ( 𝑃 pCnt 𝑥 ) ∈ ℤ )
16 15 3adant3 ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) → ( 𝑃 pCnt 𝑥 ) ∈ ℤ )
17 nnz ( 𝑦 ∈ ℕ → 𝑦 ∈ ℤ )
18 17 5 jca ( 𝑦 ∈ ℕ → ( 𝑦 ∈ ℤ ∧ 𝑦 ≠ 0 ) )
19 pczcl ( ( 𝑃 ∈ ℙ ∧ ( 𝑦 ∈ ℤ ∧ 𝑦 ≠ 0 ) ) → ( 𝑃 pCnt 𝑦 ) ∈ ℕ0 )
20 19 nn0zd ( ( 𝑃 ∈ ℙ ∧ ( 𝑦 ∈ ℤ ∧ 𝑦 ≠ 0 ) ) → ( 𝑃 pCnt 𝑦 ) ∈ ℤ )
21 18 20 sylan2 ( ( 𝑃 ∈ ℙ ∧ 𝑦 ∈ ℕ ) → ( 𝑃 pCnt 𝑦 ) ∈ ℤ )
22 21 3adant2 ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) → ( 𝑃 pCnt 𝑦 ) ∈ ℤ )
23 16 22 zsubcld ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) → ( ( 𝑃 pCnt 𝑥 ) − ( 𝑃 pCnt 𝑦 ) ) ∈ ℤ )
24 13 23 eqeltrd ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ )
25 24 3expb ( ( 𝑃 ∈ ℙ ∧ ( ( 𝑥 ∈ ℤ ∧ 𝑥 ≠ 0 ) ∧ 𝑦 ∈ ℕ ) ) → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ )
26 12 25 sylan2b ( ( 𝑃 ∈ ℙ ∧ ( ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ∧ 𝑥 ≠ 0 ) ) → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ )
27 26 expr ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( 𝑥 ≠ 0 → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ ) )
28 11 27 syld ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( ( 𝑥 / 𝑦 ) ≠ 0 → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ ) )
29 neeq1 ( 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑁 ≠ 0 ↔ ( 𝑥 / 𝑦 ) ≠ 0 ) )
30 oveq2 ( 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑃 pCnt 𝑁 ) = ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) )
31 30 eleq1d ( 𝑁 = ( 𝑥 / 𝑦 ) → ( ( 𝑃 pCnt 𝑁 ) ∈ ℤ ↔ ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ ) )
32 29 31 imbi12d ( 𝑁 = ( 𝑥 / 𝑦 ) → ( ( 𝑁 ≠ 0 → ( 𝑃 pCnt 𝑁 ) ∈ ℤ ) ↔ ( ( 𝑥 / 𝑦 ) ≠ 0 → ( 𝑃 pCnt ( 𝑥 / 𝑦 ) ) ∈ ℤ ) ) )
33 28 32 syl5ibrcom ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑁 ≠ 0 → ( 𝑃 pCnt 𝑁 ) ∈ ℤ ) ) )
34 33 com23 ( ( 𝑃 ∈ ℙ ∧ ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) ) → ( 𝑁 ≠ 0 → ( 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑃 pCnt 𝑁 ) ∈ ℤ ) ) )
35 34 impancom ( ( 𝑃 ∈ ℙ ∧ 𝑁 ≠ 0 ) → ( ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) → ( 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑃 pCnt 𝑁 ) ∈ ℤ ) ) )
36 35 adantrl ( ( 𝑃 ∈ ℙ ∧ ( 𝑁 ∈ ℚ ∧ 𝑁 ≠ 0 ) ) → ( ( 𝑥 ∈ ℤ ∧ 𝑦 ∈ ℕ ) → ( 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑃 pCnt 𝑁 ) ∈ ℤ ) ) )
37 36 rexlimdvv ( ( 𝑃 ∈ ℙ ∧ ( 𝑁 ∈ ℚ ∧ 𝑁 ≠ 0 ) ) → ( ∃ 𝑥 ∈ ℤ ∃ 𝑦 ∈ ℕ 𝑁 = ( 𝑥 / 𝑦 ) → ( 𝑃 pCnt 𝑁 ) ∈ ℤ ) )
38 3 37 mpd ( ( 𝑃 ∈ ℙ ∧ ( 𝑁 ∈ ℚ ∧ 𝑁 ≠ 0 ) ) → ( 𝑃 pCnt 𝑁 ) ∈ ℤ )