Yannick L. (@sizon5) header
Yannick L. (@sizon5) profile picture

Somewhere, something incredible is waiting to be known -- Carl Sagan

Grenoble
Joined March 2008
Photo by Yannick L. (@sizon5)Photo by Yannick L. (@sizon5)Photo by Yannick L. (@sizon5)Photo by Yannick L. (@sizon5)Photo by Yannick L. (@sizon5)Photo by Yannick L. (@sizon5)
Yannick L. retweeted
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.
IIUC, all i need to do next is pick one of these? fizzbee, tla, spin, alloy, ivy, quint, isabelle, lean, p language, dafny, coq, uppaal
27
56
5
355
17,630
Yannick L. retweeted
In honor of security apocalypse week, we will be refunding credits to anybody who is frantically running tons of tests because trying to ship patched systems. Just send us an email and we’ll make it happen.
6
51
1,765
Modularity abstraction versus Modeling abstraction muratbuffalo.blogspot.com/20…
3
8
38
4,251
Yannick L. retweeted
every company eventually becomes 11 people doing actual work and 64 people asking for updates
123
1,130
50
16,583
441,265
Yes, that was the fix that most DBMSes applied for fsyncgate But most still don’t use Direct I/O when they replay the WAL on reboot. So they risk externalizing non-durable data as durable (because they still read from the incoherent kernel page cache). cf. “Can Applications Recover from fsync Failure?” which looked into this in 2020, two years after these fixes, and found that PG, SQLite et al were still vulnerable.
1
8
1
50
13,140
Yannick L. retweeted
Niklas (@dergoegge) outlines an approach and a solution, bedrock, for this problem of determinism. He focuses on the challenge of emulating time and pausing a VM at an exact instruction count, something CPUs aren't designed to do. brink.dev/blog/2026/06/25/be…
1
4
2
14
3,115
Yannick L. retweeted
Three ways to drive testing from a Quint spec, depending on how much control your runtime gives you: → Model-Based Testing: replay traces from the model → Hybrid: model proposes the next action based on results from runtime → Trace Validation: capture from production, check it against the model A peek at @bugarela's BugBash by @AntithesisHQ 2026 talk. Full video soon!
4
1
16
1,237
Yannick L. retweeted
New 0-day in Lean just dropped. Your secure software just got borked. All your bases are mine. kirancodes.me/posts/log-who-…
20
61
20
500
48,501
Yannick L. retweeted
i like to think of settings like a pressure valve every time you add one its because you avoided making a real product decision if youre not careful your product becomes a graveyard of avoided decisions lets just add a setting often means we dont want to pick a default it might feel diplomatic in the moment everyone gets what they want in the end  except for the user they end up with a minefield of toggles they dont understand good products make strong choices they say: this is how it works by default because we believe this is the best way settings should exist for real variability not to protect us from disagreements when you look at an app with 200 settings youre not seeing power youre seeing a decade of unresolved arguments and its costing clarity for you and your customers im not anti settings im anti cowardice if the only reason a toggle exists is: we didnt want to take a stance it probably shouldnt exist
4
6
2
62
4,005
Yannick L. retweeted
Old KPIs protect old products. A lot of strategy is just refusing to pay the migration cost.
i often think about this..
10
24
2
139
12,064
"Specy addresses this challenge by automatically learning specifications from observable event traces generated by message exchanges in distributed systems." 🤯. I'm a huge fan of P. I can't wait to play with this.
Replying to @1SHL10
TL;DR: we identified a pattern of FOL formula over message events (exchanged between servers) that can express various safety properties of distributed systems, and we combine static&dynamic learning to effectively discover them. Check out our pre-print: cs.princeton.edu/~dh7120/ass…
2
53
Happy to announce that our paper “Specy: Learning Specifications for Distributed Systems from Event Traces” has been accepted at OOPSLA’26. This is a joint effort with Ankush (@ankushpd) and the P team! It’s not possible without all the great collaborators!
1
7
47
2,801
Yannick L. retweeted
"Scale isn't just performance or distribution, it's survivability." - @TigerBeetledev's @jorandirkgreef. At Monster Scale Summit, find out what keeps most transaction processing systems from scaling and how to survive billions of transactions. ow.ly/wPbj50Yoyjz #ScyllaDB
1
7
14
1,644
Stop worrying about slop For a specification φ a coding agent must find a program p such that p meets φ p ⊨ φ Slop is what we call code that offends our taste. But style is a preference. Correctness is a requirement. Correct slop is still correct teapaw.org/DominikTornow/status/2…
Weekend project: Vibe coding distributed consensus.
8
4
1
37
11,023
Yannick L. retweeted
Most developers take for granted that software's going to have bugs. But why? A new perspective to start the new year. This was Will's opening talk at #BugBash last year - join us on April 22-24 for this year's edition! Full links in the comments.
1
1
2
646
Yannick L. retweeted
✨ Magie du soir sur la chaîne de Belledonne… 📸 Photo prise par myplaneterre sur Instagram ✨ Petit rappel : ces paysages sont précieux, prenons-en soin. #monisere #ProfitePartageRespecte #Moucherotte #Belledonne #Isere #Grenoble #Montagne
1
3
307
"I doubt that anything resembling genuine "artificial general intelligence" is within reach of current AI tools. However, I think a weaker, but still quite valuable, type of "artificial general cleverness" is becoming a reality in various ways." ~ Terence Tao Even if the internal method is kind of janky, you can still get a high success rate if you pair it with strong verification. The model throws out lots of candidate approaches, and then you use strict filters to reject the bad ones. When you do that at scale, you get something that can beat what a single human can do just by volume and selection pressure, even if each individual attempt is not very trustworthy. That leads to the vibe people have right now: the tools feel impressive and useful, but also unsatisfying. The output might still be technically valuable, but it stops feeling like “mind”.
44
55
8
346
58,966
Property-based Testing and Deterministic Simulation Testing change how you think about invariants: First you defend the invariants your system has. Then you design the invariants your system should have Invariants become aspirational, not just defensive
4
2
1
20
2,120
Great session with @DominikTornow on deterministic simulation testing. @resonatehqio is building a truly unbreakable foundation for distributed systems. Highly recommend keeping an eye on what they're doing! 🛠️
1
1
5
1,446