I donāt think that lean is so good a fit for julia, unfortunately. It misses all the important abstractions for interop.
Think about how computers / software work: You have a variety of āfrontendā languages, like julia, C, python, etc. Then you have an ultimate backend, like the x64 ISA used by your CPU. Somewhere in the middle you have your ABI and OS.
E.g. Metamath is a backend.
But Lean, Coq, Isabelle, mizar, etc afaiu donāt use a real backend, they bring their own, which is inexorably tied to their high-level abstractions and language. Itās as terrible as the āC virtual machineā.
This is of course bad for interop, i.e. proving one lemma in lean, another in coq, and tying it together in mizar, hitting compile, and generating a proof that can be verified independently of any of these frameworks.
Until formal mathematics gets its act together, I see no really fruitful intersections.
To give a hypothetical example: I need some stupid estimates about some specific polynomial proven, because it appears in the specific ODE I want to prove facts about. In an ideal world, Iād fiddle around until I can get IntervalArithmetic.jl to generate the estimates, and then ask it to kindly output a machine verifiable proof, attach it as a 100 MB binary to my paper, and am done with this nonsense. In the real world, I fiddle around extensively, by hand, until I figure out a series of algebraic transformations that make the estimates apparent.
The same applies to UNSAT witnesses.
Unfortunately, there is no consensus on a binary proof / witness format, there is no social acceptance of this kind of workflow, and most tools donāt output reasonable witnesses, even if they strive for āproof-grade correctnessā.