evenhash
Joined 7 months ago
Joined 7 months ago
The statement of the theorem has to be correctly translated from English into Lean code.
It’s like translating user requirements into code. The code could run without bugs but not do what the users want.
The only way to know the AI did it correctly is to check. You can’t just take it at face value.
Say that AI gives you a Lean proof and says it proves Theorem X. It could just as easily give you the same proof but claim that it proves (not X). How would you know the difference?
Nothing can really be considered proven unless a human expert can read the Lean proof and determine that (X as defined in the Lean proof) corresponds to X. The proof (at least the statement of the theorem) must be intelligible to humans to have value.
It's possible people will just start taking AI at its word. Maybe AI says "Here is a Lean proof of X" and we all just shrug and go "Okay, X is proven." But that's not how it works right now for human mathematicians. Why would we apply that standard for AI?
This is only true in the most trivial sense. A solution is a solution, sure... but how do you know it's a solution, and not an incoherent jumble of words? A human has to review and vouch for it.
Just because the AI gives you an arxiv-worthy PDF, or a Lean proof which compiles, doesn't mean it proves what the AI says it does. The AI could give you the same PDF/Lean code and says it proves the opposite, how would anyone know the difference?
You can't advance human understanding unless you produce things that humans can understand.
And yet I see videos all the time of Indians running contraptions straight out of the steam age in their shacks to make plastic straws or sandals. Or just doing it by hand. Better machines to do these tasks already exist, but are obviously too expensive for them to afford. Why would these hypothetical robots be any more affordable or disruptive to Indian workers in particular?
If anything I think American blue collars would be the ones to worry about.
No big deal? It’s not like it’s free… tokens cost money.
Even if a site doesn’t monetize with Google Ads, there’s a decent chance it’s pulling a script from ajax.googleapis.com, and Google still knows that you visited the site from the Referer of the script download.
Ironically, even in this era of cheap and instant code, what works best (for me) is still to write as little code as possible.
It just shifts the work from
> reading the (natural language) proof and confirming it has no errors
to
> reading the Lean code and confirming it correctly encodes the theorem
For example here is a statement of the Pythagorean theorem in Lean:
theorem EuclideanGeometry.dist_sq_eq_dist_sq_add_dist_sq_iff_angle_eq_pi_div_two {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] (p₁ p₂ p₃ : P) : dist p₁ p₃ * dist p₁ p₃ = dist p₁ p₂ * dist p₁ p₂ + dist p₃ p₂ * dist p₃ p₂ <-> angle p₁ p₂ p₃ = Real.pi / 2
This is just one possible way of formalizing it and it depends on other definitions, wherein you also need to understand the assumptions they make, etc.
Answering the question of “whether proving this theorem in Lean proves the Pythagorean theorem” thus requires expert judgement as well as domain knowledge of Lean’s libraries.
So if the AI says “this theorem is true, here is the proof in Lean” it’s still possible that it’s not correct, even if the Lean code compiles. The result will still be in question until a human expert reviews it.
So I would like to counter your cynicism with a “YMMV” depending on who you work for.
LLMs benefit from abstractions for the same reasons that humans do. More information in the same amount of text. Fewer working parts to juggle so fewer ways to make mistakes.