Skip to main content

my-better-isabelle-prover

A patch manager for Isabelle installations.

GitHub: https://github.com/xqyww123/my_better_isabelle_prover

It carries the patches that the surrounding Isabelle/ML research stack needs: the SIMD FFI of Semantic_Embedding, and — for development — Isa-REPL and Isa-Mini, notably an ML loader function that Isabelle2025-2 removed. This tool keeps those edits as version-keyed unified diffs and applies, reverses, and checks them idempotently, then rebuilds the affected Scala when needed.

pip install -e .
my-better-isabelle patch          # apply the `user` patches for the detected version
my-better-isabelle patch --category all   # ... plus the `dev` ones
my-better-isabelle status         # show what is applied
my-better-isabelle unpatch        # reverse them all

The Python version constraint is declared in pyproject.toml. See reference.md for the full list of prerequisites and CLI options.

Features

A feature is one self-consistent bundle of patches, stored per Isabelle version. Run my-better-isabelle status to see which are applied.

Feature Category Isabelle2024 Isabelle2025-2 What it adds
pide_control user ✓ retired PIDE LSP control requests the stock vscode_server does not expose. Isabelle-MCP now carries them in its own component — see the note above
perspective_eof_clamp user ✓ retired Clamp the caret-perspective window's lower bound to EOF (avoids an out-of-range Text.Range past the last line). Likewise now in Isabelle-MCP's own vscode_model.scala
expose_foreign user native ✓ Stop hiding Poly/ML's Foreign/RunCall/CInterface FFI structures, which 2025-2 forgets during the Pure bootstrap
register_thy dev native ✓ Restores Thy_Info.register_thy, removed in 2025-2
show_types_nv dev ✓ ✓ Custom show_types_nv option: suppress type annotations on free/fixed variables only
expose_map_syn dev ✓ ✓ Export the private Sign.map_syn so ML can wholesale replace/clear a theory's inner syntax

Categories

Each feature is either user or dev, and my-better-isabelle patch applies only the user ones by default.

  • user — needed by the user-facing systems. On Isabelle2025-2 that is now only the SIMD FFI of Semantic_Embedding (expose_foreign); the two Isabelle-MCP features are retired there and survive for Isabelle2024 alone.
  • dev — needed only by developer/experiment infrastructure: Isa-REPL, and Isa-Mini's translator and AoA agent injector.

status always lists every feature regardless of category; its exit code reflects only the selected category (user by default). Categories live in patches/categories.toml.

pide_control — PIDE LSP control extensions (Isabelle2024 only; retired on 2025-2)

Edits five ML/Scala files to add these LSP requests (full request/response protocol in pide_control.md):

  • PIDE/theory_status — per-theory processing status for all loaded theories, including auto-loaded dependencies.
  • PIDE/cancel_execution — immediately cancel all running processing, globally.
  • PIDE/command_at_position — source text and range of the Isar command enclosing a position, with no caret move.
  • PIDE/output_at_position — source, range, and rendered prover output of the command enclosing a position, in one request, with no caret move.
  • PIDE/symbols — dump the etc/symbols translation table(s) so a client can decode/encode Isabelle symbol notation (\<forall> ↔ ∀).

register_thy — restore removed theory registration (Isabelle2025-2)

Thy_Info.register_thy existed in 2024 but was removed by the 2025-2 theory-loader refactoring. Isa-REPL needs it to inject an already-built, in-memory theory value into Isabelle's global loader database. The patch re-adds it, restored from the 2024 source with one node-type adaptation. Pure ML change — no scala_build. Details in register_thy.md.

Supported versions & verification status

Patch targets are keyed by the exact output of isabelle version (e.g. Isabelle2024, Isabelle2025-2).

  • Isabelle2024 — pide_control authored, compiled (scala_build clean), and runtime-tested; still applied there. register_thy ships natively, so no patch is needed.
  • Isabelle2025-2 — pide_control and perspective_eof_clamp were applied, compiled and runtime-tested here, and have now been reversed and retired (see the note above). The reversal was verified byte-for-byte against the pristine sources and isabelle scala_build -f was re-run, so this distribution's Scala is stock again. register_thy applies and reverse-detects cleanly.
  • show_types_nv — recorded for Isabelle2024 (reverse-recorded from the existing hand edit) and ported to Isabelle2025-2. On 2025-2 it is applied, the Pure heap has been rebuilt, and it is runtime-verified (free-variable type annotation suppressed). The end-to-end consumer path (Isa-Mini/.../print_formats.ML, show_markup=false, HOL terms) is pending the HOL/Isa-Mini rebuild.

Documentation

Metadata

Release files for my-better-isabelle-prover 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for my-better-isabelle-prover 0.3.0
File Size Uploaded Provenance Actions
my_better_isabelle_prover-0.3.0.tar.gz 24.3 kB Without provenance Details for my_better_isabelle_prover-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for my-better-isabelle-prover 0.3.0
File Interpreter ABI Platform Actions
my_better_isabelle_prover-0.3.0-py3-none-any.whl Python 3 none any Details for my_better_isabelle_prover-0.3.0-py3-none-any.whl

Total release size: 53.7 kB

Release files / my_better_isabelle_prover-0.3.0.tar.gz

Download URL my_better_isabelle_prover-0.3.0.tar.gz
Size 24.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f831205e283165a9788fe80f5ccec4601b340b7c53229ecf14514f2788e274c2
BLAKE2b-256 checksum
How to use checksums
9f8db22df5847c770c3316177c75c93cd460fe85daafe3cd06d8c3c286538e2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / my_better_isabelle_prover-0.3.0-py3-none-any.whl

Download URL my_better_isabelle_prover-0.3.0-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9273e9fa4d9ce7c7af1596ca3249c588e5fdae6776ee6ed6d3622bf868e5db6
BLAKE2b-256 checksum
How to use checksums
dac3471bb3870c7dc413a58aaf728a4a73b6af3f5d26d9db62c8e8309426fddd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Security for my-better-isabelle-prover 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page