Metamath Proof Explorer


Theorem aks5

Description: The AKS Primality test, given an integer N greater than or equal to 3, find a coprime R such that R is big enough. Then, if a bunch of polynomial equalities in the residue ring hold then N is a prime power. Currently depends on the axiom ax-exfinfld , since we currently do not have the existence of finite fields in the database. (Contributed by metakunt, 16-Aug-2025)

Ref Expression
Hypotheses aks5.1 ⊢ A = ϕ ⁡ R ⁢ log 2 N
aks5.2 ⊢ X = var 1 ⁡ ℤ/Nℤ
aks5.3 ⊢ S = Poly 1 ⁡ ℤ/Nℤ
aks5.4 ⊢ L = RSpan ⁡ S ⁡ R ⋅ mulGrp S X - S 1 S
aks5.5 ⊢ φ → N ∈ ℤ ≥ 3
aks5.6 ⊢ φ → R ∈ ℕ
aks5.7 ⊢ φ → N gcd R = 1
aks5.8 ⊢ φ → log 2 N 2 < odℤ ⁡ R ⁡ N
aks5.9 ⊢ φ → ∀ a ∈ 1 … A N ⋅ mulGrp S X + S ℤRHom ⁡ S ⁡ a S ~ QG L = N ⋅ mulGrp S X + S ℤRHom ⁡ S ⁡ a S ~ QG L
aks5.10 ⊢ φ → ∀ a ∈ 1 … A a gcd N = 1
Assertion aks5 ⊢ φ → ∃ p ∈ ℙ ∃ n ∈ ℕ N = p n

Proof

Step Hyp Ref Expression
1 aks5.1 ⊢ A = ϕ ⁡ R ⁢ log 2 N
2 aks5.2 ⊢ X = var 1 ⁡ ℤ/Nℤ
3 aks5.3 ⊢ S = Poly 1 ⁡ ℤ/Nℤ
4 aks5.4 ⊢ L = RSpan ⁡ S ⁡ R ⋅ mulGrp S X - S 1 S
5 aks5.5 ⊢ φ → N ∈ ℤ ≥ 3
6 aks5.6 ⊢ φ → R ∈ ℕ
7 aks5.7 ⊢ φ → N gcd R = 1
8 aks5.8 ⊢ φ → log 2 N 2 < odℤ ⁡ R ⁡ N
9 aks5.9 ⊢ φ → ∀ a ∈ 1 … A N ⋅ mulGrp S X + S ℤRHom ⁡ S ⁡ a S ~ QG L = N ⋅ mulGrp S X + S ℤRHom ⁡ S ⁡ a S ~ QG L
10 aks5.10 ⊢ φ → ∀ a ∈ 1 … A a gcd N = 1
11 simprl ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → Base k = q odℤ ⁡ R ⁡ q
12 simplr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → q ∈ ℙ
13 12 ad2antrr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q ∈ ℙ
14 prmnn ⊢ q ∈ ℙ → q ∈ ℕ
15 13 14 syl ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q ∈ ℕ
16 6 ad2antrr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R ∈ ℕ
17 12 14 syl ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → q ∈ ℕ
18 17 nnzd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → q ∈ ℤ
19 16 nnzd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R ∈ ℤ
20 18 19 gcdcomd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → q gcd R = R gcd q
21 5 ad2antrr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → N ∈ ℤ ≥ 3
22 eluzelz ⊢ N ∈ ℤ ≥ 3 → N ∈ ℤ
23 21 22 syl ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → N ∈ ℤ
24 19 18 23 3jca ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R ∈ ℤ ∧ q ∈ ℤ ∧ N ∈ ℤ
25 19 23 gcdcomd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R gcd N = N gcd R
26 7 ad2antrr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → N gcd R = 1
27 25 26 eqtrd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R gcd N = 1
28 simpr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → q ∥ N
29 27 28 jca ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R gcd N = 1 ∧ q ∥ N
30 rpdvds ⊢ R ∈ ℤ ∧ q ∈ ℤ ∧ N ∈ ℤ ∧ R gcd N = 1 ∧ q ∥ N → R gcd q = 1
31 24 29 30 syl2anc ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → R gcd q = 1
32 20 31 eqtrd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → q gcd R = 1
33 odzcl ⊢ R ∈ ℕ ∧ q ∈ ℤ ∧ q gcd R = 1 → odℤ ⁡ R ⁡ q ∈ ℕ
34 16 18 32 33 syl3anc ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → odℤ ⁡ R ⁡ q ∈ ℕ
35 34 ad2antrr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → odℤ ⁡ R ⁡ q ∈ ℕ
36 35 nnnn0d ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → odℤ ⁡ R ⁡ q ∈ ℕ 0
37 15 36 nnexpcld ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q odℤ ⁡ R ⁡ q ∈ ℕ
38 11 37 eqeltrd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → Base k ∈ ℕ
39 eqid ⊢ chr ⁡ k = chr ⁡ k
40 simplr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → k ∈ Field
41 simprr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → chr ⁡ k = q
42 41 13 eqeltrd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → chr ⁡ k ∈ ℙ
43 6 ad4antr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → R ∈ ℕ
44 5 ad4antr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → N ∈ ℤ ≥ 3
45 simpllr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q ∥ N
46 41 45 eqbrtrd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → chr ⁡ k ∥ N
47 7 ad4antr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → N gcd R = 1
48 8 ad4antr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → log 2 N 2 < odℤ ⁡ R ⁡ N
49 15 nnzd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q ∈ ℤ
50 32 ad2antrr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q gcd R = 1
51 odzid ⊢ R ∈ ℕ ∧ q ∈ ℤ ∧ q gcd R = 1 → R ∥ q odℤ ⁡ R ⁡ q − 1
52 43 49 50 51 syl3anc ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → R ∥ q odℤ ⁡ R ⁡ q − 1
53 11 eqcomd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q odℤ ⁡ R ⁡ q = Base k
54 53 oveq1d ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → q odℤ ⁡ R ⁡ q − 1 = Base k − 1
55 52 54 breqtrd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → R ∥ Base k − 1
56 9 ad4antr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → ∀ a ∈ 1 … A N ⋅ mulGrp S X + S ℤRHom ⁡ S ⁡ a S ~ QG L = N ⋅ mulGrp S X + S ℤRHom ⁡ S ⁡ a S ~ QG L
57 10 ad4antr ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → ∀ a ∈ 1 … A a gcd N = 1
58 38 39 40 42 43 44 46 47 1 48 55 56 57 3 4 2 aks5lem8 ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N ∧ k ∈ Field ∧ Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q → ∃ p ∈ ℙ ∃ n ∈ ℕ N = p n
59 12 34 exfinfldd ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → ∃ k ∈ Field Base k = q odℤ ⁡ R ⁡ q ∧ chr ⁡ k = q
60 58 59 r19.29a ⊢ φ ∧ q ∈ ℙ ∧ q ∥ N → ∃ p ∈ ℙ ∃ n ∈ ℕ N = p n
61 uzuzle23 ⊢ N ∈ ℤ ≥ 3 → N ∈ ℤ ≥ 2
62 5 61 syl ⊢ φ → N ∈ ℤ ≥ 2
63 exprmfct ⊢ N ∈ ℤ ≥ 2 → ∃ q ∈ ℙ q ∥ N
64 62 63 syl ⊢ φ → ∃ q ∈ ℙ q ∥ N
65 60 64 r19.29a ⊢ φ → ∃ p ∈ ℙ ∃ n ∈ ℕ N = p n