Most people in the formal verification community are familiar with – the powerful, mainstream interactive theorem prover used for everything from operating system kernels (seL4) to financial protocols. But lurking in the source tree and early development history is a hidden gem: isabelle-extreme .
isabelle extreme This opens a theory file with the extension .ext . Here’s a minimal example:
| Feature | isabelle-extreme | Isabelle/HOL | |---------|--------------------|---------------| | Logic | Minimal equational logic + fixed point | Higher-order logic | | Types | Simple types (no type classes) | Rich types with type classes | | Recursion | Via fixed point combinator ( fix ) | Primitive recursion, well-founded recursion | | Automation | None (manual rewriting only) | simp , auto , blast , sledgehammer | | Code generation | No | Yes (to ML, Scala, Haskell) | | Library | Empty | Thousands of theorems | isabelle-extreme
Also known as (EXperimental TRansformational Equational Mathematics Engine), this is not a new front-end or library. It is a radically stripped-down meta-logic – the absolute minimal core needed to perform interactive proofs within the Isabelle framework.
Beyond the Mainland: Exploring isabelle-extreme , the Minimalist Core of Interactive Theorem Proving Most people in the formal verification community are
Notice: no simp , no induct . Every proof step must explicitly invoke a primitive inference rule.
end
(* Prove a simple property manually – no automation! ) lemma add_zero: "add 0 m = m" unfolding add_def by (rule fix_eq) ( primitive rule only *)