Skip to content

This Month in Hax: October 2025

In October, we successfully merged 15 pull requests!

The Rust engine and Lean backend gained a monadic phase that wraps pure values and binds computations through pure and lift insertions, ensuring that the Lean backend faithfully uses the Lean Result monad. A rejection phase was added to enforce Lean's do-notation DSL, preventing interleaving of expressions and statements and providing clearer diagnostics.
We also introduced a FunctionsToConstants resugaring: Lean can now extract values from Rust consts using helper functions, guaranteeing panic-free constant evaluation.
Struct updates are now supported via base-expression syntax, and we refactored the printer traits to return static document builders, improve span handling, and simplify lifetimes.

The F* proof libraries now include a better VecDeque model and several fixes; loops without mutation are now accepted. The Lean backend also gained improved error messages and a refactored proof library.

Stay tuned for more updates next month!

Full list of PRs

Contributors