Automated Lean Proofs for Every Type
20 hours ago
- #SMT solvers
- #Lean theorem prover
- #automated proofs
- The author explored using SMT solvers to automate Lean proofs during an internship at Galois.
- They successfully saved over 6,800 lines of Lean code by automating proofs for the Jolt zkVM frontend.
- SMT solvers are powerful for automating symbolic reasoning but have limitations, such as not handling Higher Order Logic.
- Interactive theorem provers (ITPs) like Lean are more expressive but require manual effort for proofs.
- Combining SMT solvers and Lean is challenging due to type mismatches and the need for user control over SMT theories and encodings.
- The author developed a tactic to translate ZMod to Nat to BitVectors, significantly speeding up proof times.
- The tactic solved 10 Jolt lookup table queries in under 3 minutes, outperforming finite field decision procedures.
- A general framework for type translation in Lean remains an open problem, but the author's approach shows promise.
- The project highlights the potential for SMT tactics to aid both humans and AI in making proofs smaller, faster, and easier to maintain.
- The internship provided the author with a novel research direction and practical experience in combining SMT solvers and Lean.