{"slug": "isabelle", "name": "Isabelle", "category": "other", "category_name": "Other software", "description": "", "recommenders": 4, "commenters": 15, "warners": 1, "score": 4.622, "rising": 1.35, "first": "2025-11-02", "latest": "2026-10-06", "why": "the \"sledgehammer\" tool in there (which uses solvers to see if an existing proof can be made to work to solve your subgoal) is something that impresses me every single time I use it.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 5, "neutral": 10, "compare": 2, "warn": 1}, "spark": [2, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "the \"sledgehammer\" tool in there (which uses solvers to see if an existing proof can be made to work to solve your subgoal) is something that impresses me every single time I use it.", "kind": "", "icon": false, "domain": "tum.de", "github_repo": null, "official_url": "https://isabelle.in.tum.de/", "pricing": "", "aliases": ["Isabelle"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 793183474, "item_id": 49573967, "url": "https://news.ycombinator.com/item?id=49573967", "by": "robinzfc", "date": "2026-09-05", "stance": "recommend", "quote": "Or, say Isar in Isabelle/ZF [2].", "excerpt": "There are a couple of proof languages that are designed for formalized mathematics (rather than formal verification of software) and to be readable by mathematicians. For example, look at the proof that square root of 2 is not rational written in Naproche (retyped from [1], typos are mine): Theorem. $\\sqrt{2}$ is irrational. Proof. Assume that $\\sqrt{2}$ is rational. Then there are integers $a, b$ such that $a^2=2b^2", "context": "", "use_case": "", "switched_from": "", "story": "Formalizing Fermat's Last Theorem"}, {"id": 789728016, "item_id": 49358001, "url": "https://news.ycombinator.com/item?id=49358001", "by": "bramhaag", "date": "2026-08-19", "stance": "recommend", "quote": "re-inventing everything Isabelle has had for decades", "excerpt": "It seems that Lean keeps re-inventing everything Isabelle has had for decades (https://isa-afp.org/) in worse ways. There is no reason this has to depend on GitHub.", "context": "", "use_case": "", "switched_from": "", "story": "Palomar: A registry of Lean verified mathematics"}, {"id": 753052848, "item_id": 47065803, "url": "https://news.ycombinator.com/item?id=47065803", "by": "nextos", "date": "2026-02-18", "stance": "recommend", "quote": "the most mature option is probably Isabelle", "excerpt": "Lean is great, but if someone's primary interest is SWE, I think there are better choices. The Lean community is primarily focused on formalizing mathematics right now. This might change in the future. Lean is nice to learn theorem proving, but once you learn the basics, you'll hit a roadblock when trying to move to software verification applications. For SWE, the most mature option is probably Isabelle. It's also a ", "context": "", "use_case": "software verification", "switched_from": "", "story": "Learning Lean: Part 1"}, {"id": 735226528, "item_id": 45951658, "url": "https://news.ycombinator.com/item?id=45951658", "by": "tombert", "date": "2025-11-16", "stance": "recommend", "quote": "the \"sledgehammer\" tool in there (which uses solvers to see if an existing proof can be made to work to solve your subgoal) is something that impresses me every single time I use it.", "excerpt": "Solvers are something that still kind of feel like magic to me. I have done a fair amount of Isabelle, and the \"sledgehammer\" tool in there (which uses solvers to see if an existing proof can be made to work to solve your subgoal) is something that impresses me every single time I use it.", "context": "", "use_case": "proof assistant", "switched_from": "", "story": "Z3 API in Python: From Sudoku to N-Queens in Under 20 Lines (2015)"}, {"id": 732730929, "item_id": 45795683, "url": "https://news.ycombinator.com/item?id=45795683", "by": "nextos", "date": "2025-11-02", "stance": "recommend", "quote": "Isabelle (classical) has a great track record in software verification.", "excerpt": "> there is not anything necessarily wrong with dependent types, but that he doesn't believe they are necessary. I think that, at least in software engineering, his point has not been disproven. Isabelle (classical) has a great track record in software verification. I don't see it as something inherently inferior to Rocq (dependently typed), which also has a great track record. Lean doesn't have a great focus (yet?) o", "context": "", "use_case": "", "switched_from": "", "story": "Why don't you use dependent types?"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 750815554, "item_id": 46925972, "url": "https://news.ycombinator.com/item?id=46925972", "by": "wizzwizz4", "date": "2026-02-07", "stance": "warn", "quote": "Isabelle proper is fairly mediocre", "excerpt": "Lean 4 is not a theoretically-interesting proof assistant. If you're interested in such things, look into Rocq (which uses CoIC, like Lean, but is more rigorous about it), the HOL logic, Isabelle/HOL's automation suite (though Isabelle proper is fairly mediocre, apart from being the thing everyone's standardised around), Lean-auto (https://arxiv.org/abs/2505.14929), and whatever SAT solvers are state-of-the-art this ", "context": "", "use_case": "", "switched_from": "", "story": "First Proof"}]}], "who": [], "tags": [], "use_cases": ["proof assistant", "theorem proving", "theoretical formal proofs", "software verification", "formalization"], "compared": [{"slug": "lean", "name": "Lean", "co": 12, "switched_from": 0, "switched_to": 0}, {"slug": "rocq", "name": "Rocq", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "sledgehammer", "name": "Sledgehammer", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "tlaplus", "name": "TLA+", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "metamath", "name": "Metamath", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "dafny", "name": "Dafny", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46883337", "title": "Broken Proofs and Broken Provers", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=45790827", "title": "Why don't you use dependent types?", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49963382", "title": "Is mathematics over, or just graduating?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49568506", "title": "Formalizing Fermat's Last Theorem", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49355968", "title": "Palomar: A registry of Lean verified mathematics", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48758048", "title": "The Fall of the Theorem Economy", "mentions": 1}], "sentiment_by_month": {"2025-11": {"compare": 1, "recommend": 2, "neutral": 1}, "2025-12": {"neutral": 1, "compare": 1}, "2026-01": {"neutral": 1}, "2026-02": {"neutral": 2, "warn": 1, "recommend": 1}, "2026-03": {}, "2026-04": {"neutral": 1}, "2026-05": {"neutral": 1}, "2026-06": {"neutral": 1}, "2026-07": {"neutral": 1}, "2026-08": {"recommend": 1}, "2026-09": {"recommend": 1}, "2026-10": {"neutral": 1}}, "quotes": [{"id": 799561424, "item_id": 49972589, "url": "https://news.ycombinator.com/item?id=49972589", "by": "gobdovan", "date": "2026-10-06", "stance": "neutral", "quote": "e.g. https://isabelle.in.tum.de/website-Isabelle2025/dist/Isabelle2025/doc/sledgehammer.pdf", "excerpt": "Not sure why people are stopping at 'AI can do advanced math!' and calling that the field is gonna transform due to LLMs specifically. Pretty much any meta-formulation of math gives you some initial rules and a goal. From natural deduction and sequent calculus to dependent type theory and whatever flavour of category theory you choose, at a sufficiently abstract level, you'll end up with some form of search problem. ", "context": "", "use_case": "theorem proving", "switched_from": "", "story": "Is mathematics over, or just graduating?"}, {"id": 793183474, "item_id": 49573967, "url": "https://news.ycombinator.com/item?id=49573967", "by": "robinzfc", "date": "2026-09-05", "stance": "recommend", "quote": "Or, say Isar in Isabelle/ZF [2].", "excerpt": "There are a couple of proof languages that are designed for formalized mathematics (rather than formal verification of software) and to be readable by mathematicians. For example, look at the proof that square root of 2 is not rational written in Naproche (retyped from [1], typos are mine): Theorem. $\\sqrt{2}$ is irrational. Proof. Assume that $\\sqrt{2}$ is rational. Then there are integers $a, b$ such that $a^2=2b^2", "context": "", "use_case": "", "switched_from": "", "story": "Formalizing Fermat's Last Theorem"}, {"id": 789728016, "item_id": 49358001, "url": "https://news.ycombinator.com/item?id=49358001", "by": "bramhaag", "date": "2026-08-19", "stance": "recommend", "quote": "re-inventing everything Isabelle has had for decades", "excerpt": "It seems that Lean keeps re-inventing everything Isabelle has had for decades (https://isa-afp.org/) in worse ways. There is no reason this has to depend on GitHub.", "context": "", "use_case": "", "switched_from": "", "story": "Palomar: A registry of Lean verified mathematics"}, {"id": 780187843, "item_id": 48761740, "url": "https://news.ycombinator.com/item?id=48761740", "by": "cmrx64", "date": "2026-07-02", "stance": "neutral", "quote": "with some UC security reductions done in isabelle", "excerpt": "i got so inspired by reading diaspora this year that i instantly started working on some polisware. cipherclerk operational: https://github.com/emberian/dregg topical to the conversation, it is fully formally verified in lean (with some UC security reductions done in isabelle). also did this in HOL4 inspired by some work i did with ramana kumar in 2016, on reflective self-verifying self-modifying systems: https://git", "context": "", "use_case": "", "switched_from": "", "story": "The Fall of the Theorem Economy"}, {"id": 776543537, "item_id": 48533971, "url": "https://news.ycombinator.com/item?id=48533971", "by": "rzmmm", "date": "2026-06-14", "stance": "neutral", "quote": "The specification is written in Isabelle", "excerpt": "He mentions the seL4 microkernel. The specification is written in Isabelle, and it's relatively complex: PDF https://sel4.systems/Info/Docs/seL4-spec.pdf The bottleneck seems to be that clearly it's critical to be certain about the spec. Maybe not for kernels, but I can see use for cryptographic algorithms, etc?", "context": "", "use_case": "", "switched_from": "", "story": "Formal Methods and the Future of Programming"}, {"id": 769569250, "item_id": 48098078, "url": "https://news.ycombinator.com/item?id=48098078", "by": "tombert", "date": "2026-05-11", "stance": "neutral", "quote": "the only one I've done with any kind of intimate detail is Isabelle.", "excerpt": "FizzBee is likely a good place to start, but since I have never really used it I'm afraid I can't recommend good resources for it. ------ If you're just getting started, I recommend checking out my former advisor's book: https://www.amazon.com/Software-Engineering-Mathematics-Sei/dp/0201504243 I found this book to be fairly easy to read through, and gives you a rundown of a lot of the notation and concepts that prett", "context": "", "use_case": "theoretical formal proofs", "switched_from": "", "story": "Ask HN: What Are You Working On? (May 2026)"}, {"id": 763960480, "item_id": 47747530, "url": "https://news.ycombinator.com/item?id=47747530", "by": "c0balt", "date": "2026-04-12", "stance": "neutral", "quote": "A notable practitioner for Isabelle and Lean is AWS", "excerpt": "I don't know about running per se but practical applications (as in done for product/service) exist. A notable practitioner for Isabelle and Lean is AWS[0]. There is also TLA+ for a more practical tool. The most widely used variant of these proof assistants are probably formally verified compilers, like compcert, which are used in some highly regulated industries like aviation. [0]: https://isabelle.systems/zulip-arc", "context": "", "use_case": "Proof assistant", "switched_from": "", "story": "A Perfectable Programming Language"}, {"id": 753052848, "item_id": 47065803, "url": "https://news.ycombinator.com/item?id=47065803", "by": "nextos", "date": "2026-02-18", "stance": "recommend", "quote": "the most mature option is probably Isabelle", "excerpt": "Lean is great, but if someone's primary interest is SWE, I think there are better choices. The Lean community is primarily focused on formalizing mathematics right now. This might change in the future. Lean is nice to learn theorem proving, but once you learn the basics, you'll hit a roadblock when trying to move to software verification applications. For SWE, the most mature option is probably Isabelle. It's also a ", "context": "", "use_case": "software verification", "switched_from": "", "story": "Learning Lean: Part 1"}, {"id": 750815554, "item_id": 46925972, "url": "https://news.ycombinator.com/item?id=46925972", "by": "wizzwizz4", "date": "2026-02-07", "stance": "warn", "quote": "Isabelle proper is fairly mediocre", "excerpt": "Lean 4 is not a theoretically-interesting proof assistant. If you're interested in such things, look into Rocq (which uses CoIC, like Lean, but is more rigorous about it), the HOL logic, Isabelle/HOL's automation suite (though Isabelle proper is fairly mediocre, apart from being the thing everyone's standardised around), Lean-auto (https://arxiv.org/abs/2505.14929), and whatever SAT solvers are state-of-the-art this ", "context": "", "use_case": "", "switched_from": "", "story": "First Proof"}, {"id": 750255152, "item_id": 46890947, "url": "https://news.ycombinator.com/item?id=46890947", "by": "LegionMammal978", "date": "2026-02-04", "stance": "neutral", "quote": "At least in Isabelle/ML, it seems like in practice there are also untrusted \"oracles\"", "excerpt": "At least in Isabelle/ML, it seems like in practice there are also untrusted \"oracles\" that a proof can invoke to generate \"thm\" objects [0], and it's not entirely trivial to automatically ensure that only trusted sources are used in a project [1], unless I am misunderstanding the linked thread. Of course there's no free lunch, as you say, in making sure that high-level proofs are lowered into the trusted part correct", "context": "", "use_case": "Proof assistant", "switched_from": "", "story": "Broken Proofs and Broken Provers"}, {"id": 750183568, "item_id": 46886473, "url": "https://news.ycombinator.com/item?id=46886473", "by": "Dacit", "date": "2026-02-04", "stance": "neutral", "quote": "Isabelle has a verified proof checker that can check whether a given proof is sound", "excerpt": "In the described case, this was a simple user error. But you are right nonetheless: To enable the concurrency, the system uses a parallel inference kernel (https://www21.in.tum.de/~wenzelm/papers/parallel-isabelle.pdf). I have heard the anecdote that in the first version, this also allowed one to prove false, by fulfilling a proof promise with a proof that depended recursively on the same promise. And there are verif", "context": "", "use_case": "", "switched_from": "", "story": "Broken Proofs and Broken Provers"}, {"id": 744980432, "item_id": 46561277, "url": "https://news.ycombinator.com/item?id=46561277", "by": "tombert", "date": "2026-01-09", "stance": "neutral", "quote": "Isabelle has had the \"Sledgehammer\" tool", "excerpt": "I actually know about this a bit since it was part of what I was studying with my incomplete PhD. Isabelle has had the \"Sledgehammer\" tool for quite awhile [1]. It uses solvers like z3 to search and apply a catalog of proof strategies and then try and construct a proof for your main proof or any remaining subtasks that you have to complete. It's not perfect but it's remarkably useful (even if it does sometimes give y", "context": "", "use_case": "", "switched_from": "", "story": "AI solves Erdos problem #728 (Terence Tao mathstodon post)"}, {"id": 741218898, "item_id": 46326181, "url": "https://news.ycombinator.com/item?id=46326181", "by": "practal", "date": "2025-12-19", "stance": "compare", "quote": "", "excerpt": "You know what? I agree with you. I have not formalised any of my stuff on abstraction logic [1] for that reason (although that would not be too difficult in Isabelle or Lean), I want to write it down in Practal [2], this becoming possible I see as the first serious milestone for Practal. Eventually, I want Practal to feel more natural than paper, and definitely more natural than LaTeX. That's the goal, and I feel man", "context": "", "use_case": "formalization", "switched_from": "", "story": "From Zero to QED: An informal introduction to formality with Lean 4"}, {"id": 740040880, "item_id": 46252555, "url": "https://news.ycombinator.com/item?id=46252555", "by": "adyashakti", "date": "2025-12-12", "stance": "neutral", "quote": "verified it in both Isabelle and Lean4", "excerpt": "And now, Matthew Scherf has published \"A Formal Specification of Advaita Ved\u0101nta in Classical High-Order Logic,\" and verified it in both Isabelle and Lean4. https://github.com/matthew-scherf/Advaita", "context": "", "use_case": "Proof assistant", "switched_from": "", "story": "50 years of proof assistants"}, {"id": 736291281, "item_id": 46018205, "url": "https://news.ycombinator.com/item?id=46018205", "by": "librexpr", "date": "2025-11-22", "stance": "neutral", "quote": "plenty of computer-verified mathematics done in Metamath/set.mm and Isabelle/ZF", "excerpt": "> Say I want natural numbers, I need to choose a concrete implementation in set theory e.g. Von Neumann, but there are multiple choices. You don't need to choose a concrete implementation. If you don't want to choose a construction, you can just say something like \"let (N, 0, +, *) be a structure satisfying the peano axioms\" and work from there. > For all good definitions, so get Peano arithmetic and can work with, b", "context": "", "use_case": "", "switched_from": "", "story": "Set theory with types"}, {"id": 735226528, "item_id": 45951658, "url": "https://news.ycombinator.com/item?id=45951658", "by": "tombert", "date": "2025-11-16", "stance": "recommend", "quote": "the \"sledgehammer\" tool in there (which uses solvers to see if an existing proof can be made to work to solve your subgoal) is something that impresses me every single time I use it.", "excerpt": "Solvers are something that still kind of feel like magic to me. I have done a fair amount of Isabelle, and the \"sledgehammer\" tool in there (which uses solvers to see if an existing proof can be made to work to solve your subgoal) is something that impresses me every single time I use it.", "context": "", "use_case": "proof assistant", "switched_from": "", "story": "Z3 API in Python: From Sudoku to N-Queens in Under 20 Lines (2015)"}, {"id": 732730929, "item_id": 45795683, "url": "https://news.ycombinator.com/item?id=45795683", "by": "nextos", "date": "2025-11-02", "stance": "recommend", "quote": "Isabelle (classical) has a great track record in software verification.", "excerpt": "> there is not anything necessarily wrong with dependent types, but that he doesn't believe they are necessary. I think that, at least in software engineering, his point has not been disproven. Isabelle (classical) has a great track record in software verification. I don't see it as something inherently inferior to Rocq (dependently typed), which also has a great track record. Lean doesn't have a great focus (yet?) o", "context": "", "use_case": "", "switched_from": "", "story": "Why don't you use dependent types?"}, {"id": 732661361, "item_id": 45791335, "url": "https://news.ycombinator.com/item?id=45791335", "by": "lacker", "date": "2025-11-02", "stance": "compare", "quote": "Isabelle's library of mathematics, the AFP, is organized like a scientific journal with referees", "excerpt": "Dependent types are very useful for some things. For example, I wish Python had the ability to express \"a 10 x 5 matrix of float32s\" as a type, and typecheck that. The Curry-Howard correspondence, using dependent type system to have \"proofs\" be equivalent to \"types\", is powerful, but it can be really confusing. From a human point of view, there is a huge difference between \"Your proof is wrong\" and \"You wrote a state", "context": "", "use_case": "", "switched_from": "", "story": "Why don't you use dependent types?"}]}