Here's us there. For a more detailed comparison of BP versus other methods, including research showing it's one of the easiest ways into #FormalMethods, see bit.ly/4ihiYPV
Replying to @hillelogram
Great roundup! May I also add Behavioral Programming (e.g. Provengo, docs.provengo.tech/). JS-based executable specification language. Can test against a spec, implement correct-by-construction control logic, and visualize & verify algos. Very easy to learn if you know JS.
#FormalMethods tool roundup by @hillelogram, with additions from the community (including us 👋👋).
Indeed, #FMWinterIsOver
Okay, let's do this.
Isabelle, Lean, and Rocq (formerly Coq*) are theorem provers. They are meant to prove mathematical theorems. We use them for formal verification by either 1) translating a program to the theorem prover (risking a translation error) or 2) using a language built into the theorem prover that extracts into a working binary.
Fizzbee, TLA+, Spin, Alloy, Quint, and P are specification languages. They are meant for checking high-level blueprints of programs. After checking the blueprint, you still need to make sure your program matches it, which is a hard problem.
Specification languages differ in what they make easy to express. P, Spin, and Fizzbee are designed to be closer to the code implementations. P looks like interacting state machines, Spin looks like C with CSP, Fizzbee looks like a dialect of Python. It's easier to use a codelike specification language and refine it to code, but you can't do as much with it.
Alloy, TLA+, and Quint are more abstract. Alloy looks like a bunch of algebraic relationships, TLA+ is a much of logical formula, and Quint is a programmer-oriented (and statically typed) condensation of TLA+. Abstract modeling languages are harder to get started with and harder to represent things, but you can represent a wider class of systems with them.
I believe UPPAAL is a specification language for realtime systems. This is a field I have no experience in. It seems a graphical language, though, which would make LLM-assistance difficult.
Dafny is a verifiable programming language. It has regular programming language features, but also a bunch of features to express and prove properties of the program. It uses SMT solvers to actually prove the properties, meaning you don't need to learn a proof language (though you need to learn to cajole the solver). Dafny is probably the easiest thing on your list to get started with, but also the least likely to meet any weirder needs you might have.
I don't know what Ivy is but some cursory Kagiing suggests it falls in the specification language category.
Some other things @spin_lock_init didn't mention:
- Other theorem provers: Agda, Metamath
- Other abstract specification languages: mcrl2, NuXMV, Event-B
- Other verifiable programming languages: Idris, F*, Whiley
- There's also using a verifiable subset of a language, like Verus for Rust or SPARK for Ada.
So, what you need to pick depends on what you want to do.
You'll get the maximum power with a theorem prover. Lean is the de facto language for vibeproving, but Anthropic recently published a post about vibeproving in Rocq so YMMV.
If you want to make abstract models of software systems, go for a specification language. Which you choose depends on a lot of factors. If your system can be represented as lots of simple communicating state machines over a network, try P. Spin, I believe, is close to simple C/Go with a network and channels. I have never used Fizzbee.
Alloy is good for domain modeling, but struggles with really complicated temporal actions, nested data structures, and largish numbers. Also AIs aren't to good at it (last I checked, in March). Runs fast and makes good visualizations though.
TLA+ and Quint are for modeling complex temporal systems. I'm partial to TLA+ but know a lot of people who say Quint is easier to get into.
Note P, Fizzbee, and Quint all claim to have features for testing a codebase against a spec. I can't vouch for any of them, though. None of the languages I mentioned (except maybe NuXMV?) are particularly good at modeling sequential, deterministic algorithms.
Use Dafny if you need to just write a verified program and don't care which language it's in. I don't think other verifiable programming languages are as user-friendly for the time being. Consider a verified subset if you already know a language and want to just augment it with more correctness.
You may need other, more exotic tools depending on your particular needs. Regardless of the above advice, don't be afraid to use the wrong tool for the job. If you vibe well with a language, and you achieve good LLM-sympathy with it, you'll be able to go farther than using a "right tool" you don't like.
Everyone are talking about #FormalVerification. Our new version allows you (and your agent) to experiment with it! And also adds other nice features in the process.
#FMWinterIsOver #ModelBased #Automation
provengo.ai/post/new-release…
Formal methods are getting a lot of attention f̶i̶n̶a̶l̶l̶y̶ ̶ lately, with @_doubleAI_ , @bcherny, and @nvidia all publishing work and results in this area. We've been claiming for a while that the #FMWinterIsOver 🤓. Here's how our tech is different:
bit.ly/4ihiYPV
The talks from @tmmiamerica's #TestFormation2026 are public! Come see how to do QA at the Speed of AI Need, using our tool suite! 🎥
#ModelBased #QAAutomation #FormalMethods #FMWinterIsOver
youtube.com/watch?v=tPzukhG8…
New version of our IDE! Now with context menus and revamped file system engine.
provengo.ai/post/more-ide-up…
#DevTools #Modeling #FormalMethods #FMWinterIsOver
Had a great time at #testformation2026, @tmmiamerica's webinar, talking about how #GenAI alone is not enough to navigate the many perils of a release map. One needs better guardrails, such as a #ModelBasedTesting tool. You know, like the one we make at Provengo.
Provengo Technologies retweeted
Replying to @karpathy
Having spent the last few years in formal methods and programming languages, I wholeheartedly agree. And it's not just the programming languages - the change can to programming paradigms as well. At @ProvengoTech we use a novel executable FM to spec, verify, test, and automate.
Great news everyone! Our plugins are now available at Open-VSX, so you can use them with @cursor_ai , @antigravity, @windsurf, and other editors that support .vsx extensions!
Get'em here:
open-vsx.org/namespace/Prove…
#IDE #ModelBased #Automation #QA #FMWinterIsOver
We agree with @lennypruss (of @AmplifyPartners) - LLMs should also use formal methods to when programming (devinterrupted.substack.com/…). But why stop with TLA+? >>
Our executable specification platform is DEV, GenAI, and SME friendly. And it allows formal specifications that are both verifiable and executable. #FMWinterIsOver
New release! It's also a better one, not just new. We improved some features and squashed some bugs. And improved documentation based on used feedback. Good stuff, even if we say so ourselves.
provengo.ai/post/new-year-ne…
#FormalMethods #QAAutomation #DevTools
Watch our CTO at a recent Innovate QA's meetup, discussing #ModelBasedTesting an advanced #QA methodology for our #AI future (a future that will also be full of #HashTags, we're told. Um, #told).
youtube.com/watch?v=6k5C6JSF…
#FormalMethods #Testing #Automation #FMWinterIsOver
Join a free webinar with our own @michbarsinai. We'll cover #ModelBasedTesting, a powerful approach to #QA that improves the day-to-day lives of QA teams, making them more agile, and deliver value faster and earlier.
meetup.com/innovate-qa-seatt…
#FMWinterIsOver #FormalMethods
Our November Release is now out! 🎉 Yep, the most powerful QA tool around just got a bit better. More info here:
wix.to/pa8CqhY #ModelBased #Automation #QATools #FMWinterIsOver
New version out, with many features and improvements. Locator healing, improved AI integration, powerful execution reports that will change how you make release Go/NoGo decisions.
provengo.ai/post/early-autum…
#FMWinterIsOver
#DevTools #ModelBasedTesting #QATools #FormalMethods
We threw a PDF together explaining why #ModelBasedTesting is a good idea. It was quite easy because, well, #ModelBasedTesting is a good idea. If you're developing software systems, you should totally try this.
content.provengo.tech/files/…
#CAST2025 here we come (to talk about Model-Based Testing and all)
Oh, look, an explainer video on the formal method underlying our tool suite! Plus a bit more stuff. But really a bit, it's mostly about the formal method underlying our tool suite.
youtu.be/ReuKboygXWs
#devTools #QA #FormalMethods #FMWinterIsOver
This is your friendly reminder that #CAST2025, coming this August to the Salt Lake City near you, will be awesome.
In unrelated news, our CTO will be speaking there about #ModelBasedTesting.
associationforsoftwaretestin…
#QA #Automation #DevTools #FMWinterIsOver






