upvote
Because it is really hard to read and the level of detail is so high that even lemmas that you can read may have such enormous levels of detail that makes real understanding difficult given that humans have limited working memory.
reply
Why not always write machine code? Why use programming languages at all?
reply
If a programming language compiler isn't guaranteed to be re-producible, then yeah, you'd have to revert to machine code.
reply
The same JavaScript code compiles to different machine representations under different browser engines; yet webdevelopers don't need to learn assembly.

There is an abstract javascript machine which can obviously be translated to hardware instructions. "Obvious" in the mathematical research sense, as in the statement is flat out wrong under closer inspection. Websites regularly crash under memory pressure.

But they are good enough most of the time, and that's the key. With more resource a more correct program can be created, but cost-benefit calculations show a ceiling. A local pet store does not have the money to pay 2000 hours of formal verification work, and usually a WordPress site is good enough.

Mathematicians work with their brains. They have finite time to understand papers. Formalists say that all theorems could be reduced to logical axioms, but most of time it's jumping at a much higher level, because no one has time for minute details. Proofs are theoretically right or wrong, but in practice there are "slightly wrong" proofs, where there are some minute errors that "feels" like can be correcte, and most of the time it can be. This ambiguity is not a problem, but a feature of mathematics, because it means more time can be spent to move faster at a higher level of abstraction, but this would be lost with Lean.

reply
Lean is a write only programming language.
reply
Same reason humans write code not only for a compiler to translate into machine code but also so other humans can understand what we write, learn from it, modify it etc...
reply
Not only that, we also have code comments and standalone documentation.
reply
A programming language, when compiled, is a guaranteed reproducible result. If you recompile a program, you get the same thing each time.

The point of the article is that natural language is not these things.

reply
Because people need to understand what is being proven.
reply
The example in Figure 1 should help understand why... the NL version is much more approachable for humans.
reply
If its ambiguous or wrong, then what are you understanding ?
reply
Is not a natural language (NL) proof a demonstration of mastery and understanding?

If you understand the Lean, then you can create a NL proof. The LLM clearly doesn't understand the Lean code it produced.

reply
deleted
reply