Metamath Proof Explorer


Theorem aks6d1c1rh

Description: Claim 1 of AKS primality proof with collapsed definitions since their ease of use is no longer needed. (Contributed by metakunt, 1-May-2025)

Ref Expression
Hypotheses aks6d1c1rh.1 = { ⟨ 𝑒 , 𝑓 ⟩ ∣ ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑦 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) ) }
aks6d1c1rh.2 𝑃 = ( chr ‘ 𝐾 )
aks6d1c1rh.3 ( 𝜑𝐾 ∈ Field )
aks6d1c1rh.4 ( 𝜑𝑃 ∈ ℙ )
aks6d1c1rh.5 ( 𝜑𝑅 ∈ ℕ )
aks6d1c1rh.6 ( 𝜑𝑁 ∈ ℕ )
aks6d1c1rh.7 ( 𝜑𝑃𝑁 )
aks6d1c1rh.8 ( 𝜑 → ( 𝑁 gcd 𝑅 ) = 1 )
aks6d1c1rh.9 ( 𝜑𝐹 : ( 0 ... 𝐴 ) ⟶ ℕ0 )
aks6d1c1rh.10 𝐺 = ( 𝑔 ∈ ( ℕ0m ( 0 ... 𝐴 ) ) ↦ ( ( mulGrp ‘ ( Poly1𝐾 ) ) Σg ( 𝑖 ∈ ( 0 ... 𝐴 ) ↦ ( ( 𝑔𝑖 ) ( .g ‘ ( mulGrp ‘ ( Poly1𝐾 ) ) ) ( ( var1𝐾 ) ( +g ‘ ( Poly1𝐾 ) ) ( ( algSc ‘ ( Poly1𝐾 ) ) ‘ ( ( ℤRHom ‘ 𝐾 ) ‘ 𝑖 ) ) ) ) ) ) )
aks6d1c1rh.11 ( 𝜑𝐴 ∈ ℕ0 )
aks6d1c1rh.12 ( 𝜑𝑈 ∈ ℕ0 )
aks6d1c1rh.13 ( 𝜑𝐿 ∈ ℕ0 )
aks6d1c1rh.14 𝐸 = ( ( 𝑃𝑈 ) · ( ( 𝑁 / 𝑃 ) ↑ 𝐿 ) )
aks6d1c1rh.15 ( 𝜑 → ∀ 𝑎 ∈ ( 1 ... 𝐴 ) 𝑁 ( ( var1𝐾 ) ( +g ‘ ( Poly1𝐾 ) ) ( ( algSc ‘ ( Poly1𝐾 ) ) ‘ ( ( ℤRHom ‘ 𝐾 ) ‘ 𝑎 ) ) ) )
aks6d1c1rh.16 ( 𝜑 → ( 𝑥 ∈ ( Base ‘ 𝐾 ) ↦ ( 𝑃 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑥 ) ) ∈ ( 𝐾 RingIso 𝐾 ) )
Assertion aks6d1c1rh ( 𝜑𝐸 ( 𝐺𝐹 ) )

Proof

Step Hyp Ref Expression
1 aks6d1c1rh.1 = { ⟨ 𝑒 , 𝑓 ⟩ ∣ ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑦 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) ) }
2 aks6d1c1rh.2 𝑃 = ( chr ‘ 𝐾 )
3 aks6d1c1rh.3 ( 𝜑𝐾 ∈ Field )
4 aks6d1c1rh.4 ( 𝜑𝑃 ∈ ℙ )
5 aks6d1c1rh.5 ( 𝜑𝑅 ∈ ℕ )
6 aks6d1c1rh.6 ( 𝜑𝑁 ∈ ℕ )
7 aks6d1c1rh.7 ( 𝜑𝑃𝑁 )
8 aks6d1c1rh.8 ( 𝜑 → ( 𝑁 gcd 𝑅 ) = 1 )
9 aks6d1c1rh.9 ( 𝜑𝐹 : ( 0 ... 𝐴 ) ⟶ ℕ0 )
10 aks6d1c1rh.10 𝐺 = ( 𝑔 ∈ ( ℕ0m ( 0 ... 𝐴 ) ) ↦ ( ( mulGrp ‘ ( Poly1𝐾 ) ) Σg ( 𝑖 ∈ ( 0 ... 𝐴 ) ↦ ( ( 𝑔𝑖 ) ( .g ‘ ( mulGrp ‘ ( Poly1𝐾 ) ) ) ( ( var1𝐾 ) ( +g ‘ ( Poly1𝐾 ) ) ( ( algSc ‘ ( Poly1𝐾 ) ) ‘ ( ( ℤRHom ‘ 𝐾 ) ‘ 𝑖 ) ) ) ) ) ) )
11 aks6d1c1rh.11 ( 𝜑𝐴 ∈ ℕ0 )
12 aks6d1c1rh.12 ( 𝜑𝑈 ∈ ℕ0 )
13 aks6d1c1rh.13 ( 𝜑𝐿 ∈ ℕ0 )
14 aks6d1c1rh.14 𝐸 = ( ( 𝑃𝑈 ) · ( ( 𝑁 / 𝑃 ) ↑ 𝐿 ) )
15 aks6d1c1rh.15 ( 𝜑 → ∀ 𝑎 ∈ ( 1 ... 𝐴 ) 𝑁 ( ( var1𝐾 ) ( +g ‘ ( Poly1𝐾 ) ) ( ( algSc ‘ ( Poly1𝐾 ) ) ‘ ( ( ℤRHom ‘ 𝐾 ) ‘ 𝑎 ) ) ) )
16 aks6d1c1rh.16 ( 𝜑 → ( 𝑥 ∈ ( Base ‘ 𝐾 ) ↦ ( 𝑃 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑥 ) ) ∈ ( 𝐾 RingIso 𝐾 ) )
17 nfv 𝑧 ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) )
18 nfv 𝑦 ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) )
19 fveq2 ( 𝑦 = 𝑧 → ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) )
20 19 oveq2d ( 𝑦 = 𝑧 → ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) )
21 oveq2 ( 𝑦 = 𝑧 → ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) = ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) )
22 21 fveq2d ( 𝑦 = 𝑧 → ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) ) )
23 20 22 eqeq12d ( 𝑦 = 𝑧 → ( ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) ↔ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) ) ) )
24 17 18 23 cbvralw ( ∀ 𝑦 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) ↔ ∀ 𝑧 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) ) )
25 24 3anbi3i ( ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑦 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) ) ↔ ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑧 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) ) ) )
26 25 opabbii { ⟨ 𝑒 , 𝑓 ⟩ ∣ ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑦 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑦 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑦 ) ) ) } = { ⟨ 𝑒 , 𝑓 ⟩ ∣ ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑧 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) ) ) }
27 1 26 eqtri = { ⟨ 𝑒 , 𝑓 ⟩ ∣ ( 𝑒 ∈ ℕ ∧ 𝑓 ∈ ( Base ‘ ( Poly1𝐾 ) ) ∧ ∀ 𝑧 ∈ ( ( mulGrp ‘ 𝐾 ) PrimRoots 𝑅 ) ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ 𝑧 ) ) = ( ( ( eval1𝐾 ) ‘ 𝑓 ) ‘ ( 𝑒 ( .g ‘ ( mulGrp ‘ 𝐾 ) ) 𝑧 ) ) ) }
28 eqid ( Poly1𝐾 ) = ( Poly1𝐾 )
29 eqid ( Base ‘ ( Poly1𝐾 ) ) = ( Base ‘ ( Poly1𝐾 ) )
30 eqid ( var1𝐾 ) = ( var1𝐾 )
31 eqid ( mulGrp ‘ ( Poly1𝐾 ) ) = ( mulGrp ‘ ( Poly1𝐾 ) )
32 eqid ( mulGrp ‘ 𝐾 ) = ( mulGrp ‘ 𝐾 )
33 eqid ( .g ‘ ( mulGrp ‘ 𝐾 ) ) = ( .g ‘ ( mulGrp ‘ 𝐾 ) )
34 eqid ( algSc ‘ ( Poly1𝐾 ) ) = ( algSc ‘ ( Poly1𝐾 ) )
35 eqid ( .g ‘ ( mulGrp ‘ ( Poly1𝐾 ) ) ) = ( .g ‘ ( mulGrp ‘ ( Poly1𝐾 ) ) )
36 eqid ( eval1𝐾 ) = ( eval1𝐾 )
37 eqid ( +g ‘ ( Poly1𝐾 ) ) = ( +g ‘ ( Poly1𝐾 ) )
38 27 28 29 30 31 32 33 34 35 2 36 37 3 4 5 6 7 8 9 10 11 12 13 14 15 16 aks6d1c1 ( 𝜑𝐸 ( 𝐺𝐹 ) )