GNFS congruence of squares: in
ProvedGNFS.congruence_of_squaresalgebraic-number-theoryinteger-factorizationnumber-theory
Let , , and let be irreducible in with complex roots and a common root modulo :
Let be a finite set of pairs of integers , and suppose and satisfy
Then
- there is a ring homomorphism with ;
- there is a ring homomorphism with ;
- for all such homomorphisms, in .
So and satisfy . This is the congruence of squares produced by the postprocessing step of the general number field sieve.
Formalization Note is the subring of generated by . The rational side is the case , where .
Preamble
import Mathlib import Definitions.Def_GNFS_defs open Polynomial IntermediateField
Formal statement
namespace GNFS
theorem congruence_of_squares (n : ℕ) (m : ℤ) (f₁ f₂ : ℤ[X])
(hf₁ : Irreducible f₁) (hf₂ : Irreducible f₂) (θ₁ θ₂ : ℂ)
(hθ₁ : aeval θ₁ f₁ = 0) (hθ₂ : aeval θ₂ f₂ = 0)
(hm₁ : (n : ℤ) ∣ f₁.eval m) (hm₂ : (n : ℤ) ∣ f₂.eval m)
(S : Finset (ℤ × ℤ))
(γ₁ : Algebra.adjoin ℤ ({θ₁} : Set ℂ)) (γ₂ : Algebra.adjoin ℤ ({θ₂} : Set ℂ))
(hγ₁ : (γ₁ : ℂ) ^ 2 = ∏ p ∈ S, ((p.1 : ℂ) - (p.2 : ℂ) * θ₁))
(hγ₂ : (γ₂ : ℂ) ^ 2 = ∏ p ∈ S, ((p.1 : ℂ) - (p.2 : ℂ) * θ₂)) :
(∃ φ₁ : Algebra.adjoin ℤ ({θ₁} : Set ℂ) →+* ZMod n,
φ₁ ⟨θ₁, Algebra.self_mem_adjoin_singleton ℤ θ₁⟩ = (m : ZMod n)) ∧
(∃ φ₂ : Algebra.adjoin ℤ ({θ₂} : Set ℂ) →+* ZMod n,
φ₂ ⟨θ₂, Algebra.self_mem_adjoin_singleton ℤ θ₂⟩ = (m : ZMod n)) ∧
∀ (φ₁ : Algebra.adjoin ℤ ({θ₁} : Set ℂ) →+* ZMod n)
(φ₂ : Algebra.adjoin ℤ ({θ₂} : Set ℂ) →+* ZMod n),
φ₁ ⟨θ₁, Algebra.self_mem_adjoin_singleton ℤ θ₁⟩ = (m : ZMod n) →
φ₂ ⟨θ₂, Algebra.self_mem_adjoin_singleton ℤ θ₂⟩ = (m : ZMod n) →
φ₁ γ₁ ^ 2 = φ₂ γ₂ ^ 2 := by sorry
end GNFSSource
Wikipedia, "General number field sieve" (revision oldid=1377718368, https://en.wikipedia.org/w/index.php?title=General_number_field_sieve&oldid=1377718368), section 'Method — Postprocessing'
Human review
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.