Finally managed to formalize in #Lean4 the repaired version of the arguments in Section 2 of my paper. It was more tedious than I expected, with each line of proof taking about an hour to formalize. In the first week of my project, the bottleneck was my own ignorance of the syntax and tools available in Lean; but currently the bottleneck was rather the tools themselves, which are not yet as advanced as the tools one might see in a computer algebra package. For instance, in one line of my paper I state that the inequality
can be rearranged as
assuming all denominators are positive. This is a reasonably quick task on pen and paper, and can also be done fairly readily in any standard computer algebra package (perhaps after treating
One step that stumped me for a while was a numerical verification
The tools are still steadily improving though. In the near future one can envisage an AI layer on top of Lean in which individual steps in a proof (e.g., "rearrange the previous expression into an upper bound for
There is a noticeable difference in the power level of Lean's tools with regards to using equalities, and with regards to using inequalities. For instance, using the inequality
mentioned above, I can easily tell Lean to "use the fact that
In the end, I decided not to utilize asymptotic notation in this portion of the argument, and established the final inequality
with an explicit constant
Numerically,
@tao Thankfully this constant is smaller than the "constants allowed in real math" mandated by xkcd https://xkcd.com/899/ haha
@tao We do have numerical bounds on 𝑒 (Mathlib.Data.Complex.ExponentialBounds) and it's certainly possible to prove numerical bounds on powers (I have a Lean 3 example attached to https://leanprover.zulipchat.com/#narrow/stream/208328-IMO-grand-challenge/topic/IMO.202020/near/212247641 ) - but, yes, it's much more complicated than it should be (people have talked about wanting a single tactic to prove such things automatically by numerical approximation).