Metamath Proof Explorer


Theorem ppidif

Description: The difference of the prime-counting function ppi at two points counts the number of primes in an interval. (Contributed by Mario Carneiro, 21-Sep-2014)

Ref Expression
Assertion ppidif ⊢ N ∈ ℤ ≥ M → π _ ⁡ N − π _ ⁡ M = M + 1 … N ∩ ℙ

Proof

Step Hyp Ref Expression
1 eluzelz ⊢ N ∈ ℤ ≥ M → N ∈ ℤ
2 eluzel2 ⊢ N ∈ ℤ ≥ M → M ∈ ℤ
3 2z ⊢ 2 ∈ ℤ
4 ifcl ⊢ M ∈ ℤ ∧ 2 ∈ ℤ → if M ≤ 2 M 2 ∈ ℤ
5 2 3 4 sylancl ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 ∈ ℤ
6 3 a1i ⊢ N ∈ ℤ ≥ M → 2 ∈ ℤ
7 2 zred ⊢ N ∈ ℤ ≥ M → M ∈ ℝ
8 2re ⊢ 2 ∈ ℝ
9 min2 ⊢ M ∈ ℝ ∧ 2 ∈ ℝ → if M ≤ 2 M 2 ≤ 2
10 7 8 9 sylancl ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 ≤ 2
11 eluz2 ⊢ 2 ∈ ℤ ≥ if M ≤ 2 M 2 ↔ if M ≤ 2 M 2 ∈ ℤ ∧ 2 ∈ ℤ ∧ if M ≤ 2 M 2 ≤ 2
12 5 6 10 11 syl3anbrc ⊢ N ∈ ℤ ≥ M → 2 ∈ ℤ ≥ if M ≤ 2 M 2
13 ppival2g ⊢ N ∈ ℤ ∧ 2 ∈ ℤ ≥ if M ≤ 2 M 2 → π _ ⁡ N = if M ≤ 2 M 2 … N ∩ ℙ
14 1 12 13 syl2anc ⊢ N ∈ ℤ ≥ M → π _ ⁡ N = if M ≤ 2 M 2 … N ∩ ℙ
15 min1 ⊢ M ∈ ℝ ∧ 2 ∈ ℝ → if M ≤ 2 M 2 ≤ M
16 7 8 15 sylancl ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 ≤ M
17 eluz2 ⊢ M ∈ ℤ ≥ if M ≤ 2 M 2 ↔ if M ≤ 2 M 2 ∈ ℤ ∧ M ∈ ℤ ∧ if M ≤ 2 M 2 ≤ M
18 5 2 16 17 syl3anbrc ⊢ N ∈ ℤ ≥ M → M ∈ ℤ ≥ if M ≤ 2 M 2
19 id ⊢ N ∈ ℤ ≥ M → N ∈ ℤ ≥ M
20 elfzuzb ⊢ M ∈ if M ≤ 2 M 2 … N ↔ M ∈ ℤ ≥ if M ≤ 2 M 2 ∧ N ∈ ℤ ≥ M
21 18 19 20 sylanbrc ⊢ N ∈ ℤ ≥ M → M ∈ if M ≤ 2 M 2 … N
22 fzsplit ⊢ M ∈ if M ≤ 2 M 2 … N → if M ≤ 2 M 2 … N = if M ≤ 2 M 2 … M ∪ M + 1 … N
23 21 22 syl ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … N = if M ≤ 2 M 2 … M ∪ M + 1 … N
24 23 ineq1d ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … N ∩ ℙ = if M ≤ 2 M 2 … M ∪ M + 1 … N ∩ ℙ
25 indir ⊢ if M ≤ 2 M 2 … M ∪ M + 1 … N ∩ ℙ = if M ≤ 2 M 2 … M ∩ ℙ ∪ M + 1 … N ∩ ℙ
26 24 25 eqtrdi ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … N ∩ ℙ = if M ≤ 2 M 2 … M ∩ ℙ ∪ M + 1 … N ∩ ℙ
27 26 fveq2d ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … N ∩ ℙ = if M ≤ 2 M 2 … M ∩ ℙ ∪ M + 1 … N ∩ ℙ
28 fzfi ⊢ if M ≤ 2 M 2 … M ∈ Fin
29 inss1 ⊢ if M ≤ 2 M 2 … M ∩ ℙ ⊆ if M ≤ 2 M 2 … M
30 ssfi ⊢ if M ≤ 2 M 2 … M ∈ Fin ∧ if M ≤ 2 M 2 … M ∩ ℙ ⊆ if M ≤ 2 M 2 … M → if M ≤ 2 M 2 … M ∩ ℙ ∈ Fin
31 28 29 30 mp2an ⊢ if M ≤ 2 M 2 … M ∩ ℙ ∈ Fin
32 fzfi ⊢ M + 1 … N ∈ Fin
33 inss1 ⊢ M + 1 … N ∩ ℙ ⊆ M + 1 … N
34 ssfi ⊢ M + 1 … N ∈ Fin ∧ M + 1 … N ∩ ℙ ⊆ M + 1 … N → M + 1 … N ∩ ℙ ∈ Fin
35 32 33 34 mp2an ⊢ M + 1 … N ∩ ℙ ∈ Fin
36 7 ltp1d ⊢ N ∈ ℤ ≥ M → M < M + 1
37 fzdisj ⊢ M < M + 1 → if M ≤ 2 M 2 … M ∩ M + 1 … N = ∅
38 36 37 syl ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … M ∩ M + 1 … N = ∅
39 38 ineq1d ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … M ∩ M + 1 … N ∩ ℙ = ∅ ∩ ℙ
40 inindir ⊢ if M ≤ 2 M 2 … M ∩ M + 1 … N ∩ ℙ = if M ≤ 2 M 2 … M ∩ ℙ ∩ M + 1 … N ∩ ℙ
41 0in ⊢ ∅ ∩ ℙ = ∅
42 39 40 41 3eqtr3g ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … M ∩ ℙ ∩ M + 1 … N ∩ ℙ = ∅
43 hashun ⊢ if M ≤ 2 M 2 … M ∩ ℙ ∈ Fin ∧ M + 1 … N ∩ ℙ ∈ Fin ∧ if M ≤ 2 M 2 … M ∩ ℙ ∩ M + 1 … N ∩ ℙ = ∅ → if M ≤ 2 M 2 … M ∩ ℙ ∪ M + 1 … N ∩ ℙ = if M ≤ 2 M 2 … M ∩ ℙ + M + 1 … N ∩ ℙ
44 31 35 42 43 mp3an12i ⊢ N ∈ ℤ ≥ M → if M ≤ 2 M 2 … M ∩ ℙ ∪ M + 1 … N ∩ ℙ = if M ≤ 2 M 2 … M ∩ ℙ + M + 1 … N ∩ ℙ
45 14 27 44 3eqtrd ⊢ N ∈ ℤ ≥ M → π _ ⁡ N = if M ≤ 2 M 2 … M ∩ ℙ + M + 1 … N ∩ ℙ
46 ppival2g ⊢ M ∈ ℤ ∧ 2 ∈ ℤ ≥ if M ≤ 2 M 2 → π _ ⁡ M = if M ≤ 2 M 2 … M ∩ ℙ
47 2 12 46 syl2anc ⊢ N ∈ ℤ ≥ M → π _ ⁡ M = if M ≤ 2 M 2 … M ∩ ℙ
48 45 47 oveq12d ⊢ N ∈ ℤ ≥ M → π _ ⁡ N − π _ ⁡ M = if M ≤ 2 M 2 … M ∩ ℙ + M + 1 … N ∩ ℙ - if M ≤ 2 M 2 … M ∩ ℙ
49 hashcl ⊢ if M ≤ 2 M 2 … M ∩ ℙ ∈ Fin → if M ≤ 2 M 2 … M ∩ ℙ ∈ ℕ 0
50 31 49 ax-mp ⊢ if M ≤ 2 M 2 … M ∩ ℙ ∈ ℕ 0
51 50 nn0cni ⊢ if M ≤ 2 M 2 … M ∩ ℙ ∈ ℂ
52 hashcl ⊢ M + 1 … N ∩ ℙ ∈ Fin → M + 1 … N ∩ ℙ ∈ ℕ 0
53 35 52 ax-mp ⊢ M + 1 … N ∩ ℙ ∈ ℕ 0
54 53 nn0cni ⊢ M + 1 … N ∩ ℙ ∈ ℂ
55 pncan2 ⊢ if M ≤ 2 M 2 … M ∩ ℙ ∈ ℂ ∧ M + 1 … N ∩ ℙ ∈ ℂ → if M ≤ 2 M 2 … M ∩ ℙ + M + 1 … N ∩ ℙ - if M ≤ 2 M 2 … M ∩ ℙ = M + 1 … N ∩ ℙ
56 51 54 55 mp2an ⊢ if M ≤ 2 M 2 … M ∩ ℙ + M + 1 … N ∩ ℙ - if M ≤ 2 M 2 … M ∩ ℙ = M + 1 … N ∩ ℙ
57 48 56 eqtrdi ⊢ N ∈ ℤ ≥ M → π _ ⁡ N − π _ ⁡ M = M + 1 … N ∩ ℙ