I’m releasing Ansatz, a new Clojure library for verified programming:
https://lnkd.in/g_3ZcfTF
Ansatz explores what it looks like to bring proof-oriented programming into the Clojure/JVM world. The core idea is to write programs and proofs in Clojure s-expressions, check them against a CIC kernel implemented in Java, and then run verified functions as ordinary JVM code.
The project is inspired by Lean 4 and aims at interoperability with that ecosystem. It already works with imported declarations from Lean libraries such as Mathlib and CSLib, which opens an interesting path toward using a large body of existing formalized mathematics and verified algorithms from within Clojure.
What Ansatz currently focuses on:
- verified function definitions
- theorem proving with tactics in Clojure syntax
- inductive types and structures
- import/export around Lean 4, Mathlib, and CSLib
- a JVM-native foundation for larger systems
This is the first release. It is not a throwaway side project, and a lot of work already went into getting the kernel, import pipeline, and proof machinery into usable shape. I am exploring this direction seriously because I want to build AI infrastructure on top of it (leveraging the persistent memory model also used in https://datahike.io/).
At the same time, this is still early work and definitely not stable. I expect rough edges, especially in tactic implementations, and I would not be surprised if there are still gaps in the kernel and the surrounding workflow. There are dragons here.
So this release is also an invitation. If you are interested in verified programming, theorem proving, Lean 4 interoperability, or AI systems built on top of more trustworthy formal foundations, I would be glad if you take a look and explore the direction with me.
#Clojure #FormalMethods #TheoremProving #Lean4 #JVM #ProgrammingLanguages #AI
So what do you think will be the life-expectancy of your talk’s content? :)