A bi-directional extensible interface between Lean and Mathematica
Lean and Mathematica have complementary strengths (rigorous verification vs. powerful computation), but no extensible interface existed to exchange arbitrary information between the two systems while maintaining proof-assistant rigor.
The authors implement a bi-directional, user-extensible ad hoc connection between Lean and Mathematica by reflecting each system's syntax in the other and providing flexible translation extensions. Lean's metaprogramming framework verifies certain Mathematica computations so that proof-assistant rigor is not compromised, while Mathematica serves as an untrusted oracle to guide proof search.
The interface enables exchange of arbitrary information between Lean and Mathematica, allowing Mathematica computations to guide Lean proof search without compromising the trusted kernel. The extensible design lets users add new translations for their specific domains.
