Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Releases]¶
v1.3.0 - June 3, 2026¶
Added¶
- Added link shortening to the gateway. The web UI has been updated correspondingly. Try it out: https://axle.axiommath.ai/check#r=7d70453f-813f-4d19-8de9-44793dafa835
- Added Claude web, desktop, and mobile support to the
axiom-axle-mcpMCP server via a hosted endpoint athttps://mcp.axiommath.ai/mcp. See the Quick Start for details. Thanks to Andrew Sutherland for suggestions on setting up this hosted instance. - Added three new fields to the
infofield of every response to identify the executor version your request was handled on:_executor_commit_sha,_executor_docker_image_id, and_executor_artifact_sha256.
Changed¶
-
Added a new option
theorems_only(defaulttrue) to all tools that select over theorems/lemmas. These tools now have the ability to select over all declaration kinds:theorem2lemma,theorem2sorry,simplify_theorems,repair_proofs,have2lemma,have2sorry,sorry2lemma,disprove:- To use this feature, set
theorems_onlytofalse. For backwards compatibility (default), keeptheorems_onlyset totrue. - You can now sorry out any declaration body, simplify/repair any declaration containing a proof, and extract lemmas from any
sorrylocations and anyhavestatement locations in any declarations, including definitions, opaques, instances, etc. - For
theorem2lemmaanddisprove, the new setting is a no-op on non-theorem kinds. - Note that the value of
theorems_onlyaffects what thenamesandindicesfields select over. Whentheorems_onlyisfalse, names and indices refer to all declarations, not just theorem kinds.
- To use this feature, set
-
Reworked
repair_proofs(the first of several planned changes):- Added two new passes to
repair_proofs:remove_unknown_options, which strips unknown options both at the command-level and within proofs/terms, andenable_autoImplicit, which restores theautoImplicitoption at the beginning of a theorem if an unknown identifier error occurs in a theorem's type signature. - Added command-level re-elaboration to
repair_proofs, allowing repairs to stack (for example, when applying terminal tactics reveals another error to fix). replace_unsafe_tacticsnow warns the user when replacingnative_decidewithdecide +kernelfails. The tactic location is now left untouched.apply_terminal_tacticsnow warns when no terminal tactics could be successfully applied at a given location inrepair_proofs.- Fixed a bug in
apply_terminal_tacticsallowing malformed proofs with metavariables to be counted as successes inrepair_proofs.
- Added two new passes to
-
verify_proofnow permitspartial defandopaque. These checks were overly strict previously and do not raise soundness concerns. mergenow deduplicates other declaration kinds: axioms, opaques, inductives, classes, structures, etc. Previously, only theorems and definitions were eligible for deduplication.extract_declsnow names anonymous declarations (examples, anonymous instances) by their start position, line then column (e.g._example_12_0), rather than a running counter (e.g._example_0), so the placeholder is stable and remains unique across a file even when several share a line.- Added the
merge_duplicates(defaultfalse) option tosorry2lemma, which merges extracted lemmas that are duplicates (either with other lemmas, or to the existing top-level theorem/lemma from which they are extracted) by definitional equality into a single lemma with all callsites pointing at it. Existing behavior can be retained with the default settingmerge_duplicates=false.
Fixed¶
- Added faster, more graceful retries on certain classes of connection errors. Minor change.
v1.2.1 - April 29, 2026¶
Deprecated¶
extract_theoremshas been deprecated and will no longer be updated. Please useextract_declsinstead, which supports all declaration kinds (def, theorem, lemma, abbrev, instance, structure, etc.).
Changed¶
- The AXLE client now uses HTTP/2 by default. We don't expect any significant performance differences from this change, but feel free to file a bug report if this is not the case. Users may set the
http2parameter to false in the client constructor to revert back to the original HTTP/1.1 settings.
Added¶
- Added a new option
expand_scoped_notationsto thenormalizetool, which delaborates scoped notations into their expanded forms. See thenormalizedocumentation page for details.
Fixed¶
- Fixed a bug in the executors causing requests to hang, occasionally resulting in abnormally high latencies.
v1.2.0 - April 15, 2026¶
Added¶
- Added two new fields in
extract_theoremsto be consistent withextract_decls(see below):kind: alwaystheoremforextract_theorems.declaration_messages: same content astheorem_messages.theorem_messagesis now deprecated and will be removed in a future update.
- Added
extract_decls, an upgraded version ofextract_theoremsthat extracts all declaration kinds.- New
kindfield in each document. Possible values:theorem,def,abbrev,axiom,opaque,structure,class,class inductive,inductive,instance,example,unknown - Note: Not all fields are meaningful for all declaration kinds (e.g.,
proof_length/tactic_countsonly apply to theorems/lemmas with tactic proofs.) - This tool should be used instead of
extract_theoremsas it is a strict superset of functionality.extract_theoremswill be deprecated in a future update.
- New
Fixed¶
- Added "Last Used" and "Requests (24h)" columns to the API key console page for better visibility into API key usage.
v1.1.1 - April 8, 2026¶
Changed¶
- [!] We are turning on the
autoImplicitand turning off thepp.unicode.funLean options. AXLE will now automatically insert implicit variables when they are missing. This is a significant behavioral change, check your code! These settings are consistent with Lean's default. The previous options were remnants from internal use preferences. - [!] We have renamed
mathlib_lintertomathlib_options, which now setslinter.mathlibStandardSetto true,autoImplicitto false,relaxedAutoImplicitto false, andpp.unicode.funto true. Use this toggle to enable the stricter defaults that Mathlib uses by convention.
Added¶
- Added Lean 4.29.0 support.
- Added support for glob patterns in the
permitted_sorriesfield forverify_proof. See theverify_proofdocumentation page under thepermitted_sorriesfield for example use cases.
Fixed¶
- Fixed a bug causing timeouts to be capped at 10 minutes. All requests now max out at 15 minutes (with documentation updated correspondingly).
v1.1.0 - April 1, 2026¶
Changed¶
- [!] Removed
document_messagesfrom the response ofextract_theorems— to replicate old behavior, run thecontentfield of the resulting documents through thechecktool. This change significantly improves the speed ofextract_theorems. - [!]
includeEndPoshas been turned on for Lean messages. This changes the format from:-:4:38: error: Function expected at...to (when endPos is available):-:4:38-4:43: error: Function expected at...This change affects all tools with Lean messages. - Significantly reworked the Lean executor pool backend.
- Latency has been decreased by 50% in most cases. For longer requests, the new executors can be more than 5 times faster!
- Previously, the first request to each environment required a ~10s warmup. This is no longer the case, and so requests will be more faithful to their Lean timeout limits (not including queueing / waiting for available slots).
- Eliminates a security risk involving persistent Lean workers.
- Improved the Lean worker warm-up pipeline. Worker scale-up is also more aggressive than before. In the worst case, when all workers are completely occupied / offline, users should expect no more than a 2-3 minute delay before more worker capacity spins up.
Fixed¶
- Removed redundant parsing resulting in occasional speedups in
repair_proofs,normalize, etc. when content does not change. - Pruned missing executors from the gateway registry. Fixes a bug with autoscaling improperly triggering.
v1.0.2 - March 18, 2026¶
Added¶
- Added explicit
okayreturn value torepair_proofs
Changed¶
- Improved error messages for unknown options in
simplify_theorems,repair_proofs,normalize - Improved error messages for
ignore_importserror (with links to relevant docs) - Improved the efficiency of
merge, bringing down the time spent on large requests by 20-30%.
v1.0.1 - March 11, 2026¶
Added¶
- Added Changelog and Troubleshooting to the documentation pages.
Fixed¶
- Increased request limits and fixed a typo in the documentation. Users with an API key are now limited to 20 active requests, and anonymous users are limited to 10 active requests.
- Increased maximum timeout to 15 minutes (from 5 minutes).
- Environments are now sorted by prefix (alphabetically) and then by version number (more recent versions first)
- Fixed a bug with
disprovefailing to recognize implicit local variables. This bug was found by Bulhwi Cha on Lean Zulip.
v1.0.0 - March 4, 2026¶
Added¶
- Initial release of AXLE Python client
- Async client (
AxleClient) with all 14 API tools:verify_proof- Verify proofs against formal statementscheck- Check Lean code for errorsextract_theorems- Extract theorems with dependenciesrename- Rename declarationstheorem2lemma- Convert theorem/lemma keywordstheorem2sorry- Replace proofs with sorrymerge- Combine multiple Lean filessimplify_theorems- Simplify proofsrepair_proofs- Repair broken proofshave2lemma- Extract have statements to lemmashave2sorry- Replace have statements with sorrysorry2lemma- Extract sorries and errors to lemmasdisprove- Attempt to disprove theoremsnormalize- Standardize formatting
- CLI tool with commands for all tools
- Helper functions for string manipulation
- Configuration via environment variables
- Type hints and PEP 561 compliance
- Comprehensive documentation