Metamath Proof Explorer


Theorem dirith

Description: Dirichlet's theorem: there are infinitely many primes in any arithmetic progression coprime to N . Theorem 9.4.1 of Shapiro, p. 375. See https://metamath-blog.blogspot.com/2016/05/dirichlets-theorem.html for an informal exposition. This is Metamath 100 proof #48. (Contributed by Mario Carneiro, 12-May-2016)

Ref Expression
Assertion dirith ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → p ∈ ℙ | N ∥ p − A ≈ ℕ

Proof

Step Hyp Ref Expression
1 simp1 ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → N ∈ ℕ
2 1 nnnn0d ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → N ∈ ℕ 0
3 2 adantr ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → N ∈ ℕ 0
4 eqid ⊢ ℤ/Nℤ = ℤ/Nℤ
5 eqid ⊢ Base ℤ/Nℤ = Base ℤ/Nℤ
6 eqid ⊢ ℤRHom ⁡ ℤ/Nℤ = ℤRHom ⁡ ℤ/Nℤ
7 4 5 6 znzrhfo ⊢ N ∈ ℕ 0 → ℤRHom ⁡ ℤ/Nℤ : ℤ ⟶ onto Base ℤ/Nℤ
8 fofn ⊢ ℤRHom ⁡ ℤ/Nℤ : ℤ ⟶ onto Base ℤ/Nℤ → ℤRHom ⁡ ℤ/Nℤ Fn ℤ
9 3 7 8 3syl ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → ℤRHom ⁡ ℤ/Nℤ Fn ℤ
10 prmz ⊢ p ∈ ℙ → p ∈ ℤ
11 10 adantl ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → p ∈ ℤ
12 fniniseg ⊢ ℤRHom ⁡ ℤ/Nℤ Fn ℤ → p ∈ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A ↔ p ∈ ℤ ∧ ℤRHom ⁡ ℤ/Nℤ ⁡ p = ℤRHom ⁡ ℤ/Nℤ ⁡ A
13 12 baibd ⊢ ℤRHom ⁡ ℤ/Nℤ Fn ℤ ∧ p ∈ ℤ → p ∈ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A ↔ ℤRHom ⁡ ℤ/Nℤ ⁡ p = ℤRHom ⁡ ℤ/Nℤ ⁡ A
14 9 11 13 syl2anc ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → p ∈ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A ↔ ℤRHom ⁡ ℤ/Nℤ ⁡ p = ℤRHom ⁡ ℤ/Nℤ ⁡ A
15 simp2 ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → A ∈ ℤ
16 15 adantr ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → A ∈ ℤ
17 4 6 zndvds ⊢ N ∈ ℕ 0 ∧ p ∈ ℤ ∧ A ∈ ℤ → ℤRHom ⁡ ℤ/Nℤ ⁡ p = ℤRHom ⁡ ℤ/Nℤ ⁡ A ↔ N ∥ p − A
18 3 11 16 17 syl3anc ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → ℤRHom ⁡ ℤ/Nℤ ⁡ p = ℤRHom ⁡ ℤ/Nℤ ⁡ A ↔ N ∥ p − A
19 14 18 bitrd ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 ∧ p ∈ ℙ → p ∈ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A ↔ N ∥ p − A
20 19 rabbi2dva ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → ℙ ∩ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A = p ∈ ℙ | N ∥ p − A
21 eqid ⊢ Unit ⁡ ℤ/Nℤ = Unit ⁡ ℤ/Nℤ
22 simp3 ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → A gcd N = 1
23 4 21 6 znunit ⊢ N ∈ ℕ 0 ∧ A ∈ ℤ → ℤRHom ⁡ ℤ/Nℤ ⁡ A ∈ Unit ⁡ ℤ/Nℤ ↔ A gcd N = 1
24 2 15 23 syl2anc ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → ℤRHom ⁡ ℤ/Nℤ ⁡ A ∈ Unit ⁡ ℤ/Nℤ ↔ A gcd N = 1
25 22 24 mpbird ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → ℤRHom ⁡ ℤ/Nℤ ⁡ A ∈ Unit ⁡ ℤ/Nℤ
26 eqid ⊢ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A = ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A
27 4 6 1 21 25 26 dirith2 ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → ℙ ∩ ℤRHom ⁡ ℤ/Nℤ -1 ℤRHom ⁡ ℤ/Nℤ ⁡ A ≈ ℕ
28 20 27 eqbrtrrd ⊢ N ∈ ℕ ∧ A ∈ ℤ ∧ A gcd N = 1 → p ∈ ℙ | N ∥ p − A ≈ ℕ