• isabelle-extreme
0

Your Cart is Empty

Isabelle-extreme Work -

theory Scratch imports Main begin (* Define addition via fixed point *) definition add :: "nat ⇒ nat ⇒ nat" where "add ≡ fix (λadd n m. if n = 0 then m else add (n-1) (m+1))"

isabelle extreme This opens a theory file with the extension .ext . Here’s a minimal example: isabelle-extreme

If you’ve ever wondered, “What is the absolute minimum logic needed to build an ITP?” – isabelle-extreme is your answer. theory Scratch imports Main begin (* Define addition

(* Prove a simple property manually – no automation! ) lemma add_zero: "add 0 m = m" unfolding add_def by (rule fix_eq) ( primitive rule only *) (* Prove a simple property manually – no automation

| 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 |

Notice: no simp , no induct . Every proof step must explicitly invoke a primitive inference rule.

No – and that’s the point. isabelle-extreme is intentionally useless for application-scale verification. It lacks data types, recursion schemes, and any form of automation. Trying to prove 1+1=2 requires dozens of manual rewrite steps. However, as a and kernel sanity check , it is invaluable.