Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Replacing the old battery on rechargeable bike lights (jvns.ca)
    3comments
  2. Flip Fluid on Flip Dots (mitxela.com)
    14comments
  3. OpenAI Feared "Optics" of what might appear on Hacker News (authorsguild.org)
    400comments
  4. Does Georgism work? Five years later (astralcodexten.com)
    317comments
  5. "As a Language Model": Chat Template Switches LLM Self-Referential Voice (arxiv.org)
    73comments
  6. Fakecloud: Local AWS cloud emulator for integration tests (fakecloud.dev)
    8comments
  7. Go Concurrency Distilled (antonz.org)
    126comments
  8. Finally, A True Blue Rose Exists (sciencenews.org)
    18comments
  9. PipePipe: NewPipe hard fork implementing SponsorBlock (github.com/infinityloop1308)
    247comments
  10. The internet discovers TLA+. Now what? (reasonable.io)
    34comments
  11. DeepSeek Elastic Compute (DSec) (arxiv.org)
    93comments
  12. Show HN: Reladraw – A diagram language where you decide where to place things (github.com/reladraw)
    92comments
  13. Rusty thoughts on "Parse, don't validate" (thegreenplace.net)
    3comments
  14. Show HN: A CC0 museum of retro 3D tricks you can paste into a page (3d-retro.com)
    2comments
  15. ASML says it sold 'absolutely nothing' in Europe in 2026 (tomshardware.com)
    746comments
  16. Biology might not be quantum, but its math is quantumlike (quantamagazine.org)
    34comments
  17. A searchable library of forgotten public-domain film clips from 1915 onward (movingimagearchive.com)
    26comments
  18. Fifteen years later, the Apple Cards origin story (lexontech.org)
    109comments
  19. Exploding variance of means of exponentials: least-squares to the rescue (francisbach.com)
    —discuss
  20. An agent used DNS to reach an external chatbot (alignment.openai.com)
    127comments
  21. How I changed teaching after AI managed to do all my homework assignments (thelastsoftwareengineer.substack.com)
    231comments
  22. Meta Blocks President Lula's Facebook Page, Campaign Ads 2 Weeks from Election (reddit.com)
    232comments
  23. Drawgent: Coding agent on a live Excalidraw canvas (tangled.org/yanndegat.tngl.sh)
    43comments
  24. Promising discoveries about the potential for life on one of Saturn’s icy moons (fu-berlin.de)
    46comments
  25. How to keep enjoying programming in a world of LLMs (haskell.org)
    301comments
  26. Turning GLM-5.3-Flash into a Jev-like decision model (privatemode.ai)
    50comments
  27. Teaching a World Model to Play Pokemon (nostalgia.dev)
    18comments
  28. What is the size of Yemen? (2024) (theborys.substack.com)
    70comments
  29. Reverse-engineering the Intel 8087's tangent algorithm: more than CORDIC (righto.com)
    11comments
  30. Evolving programming languages in the AI era (dashbit.co)
    82comments

The internet discovers TLA+. Now what?

66 pointsby 9h agoreasonable.io
34 comments
5h agoHN ↗

Time to discover communicating sequential processes instead :P

5h agoHN ↗

That stuff gets rediscovered all the time, the latest example probably being golang

5h agoHN ↗

wait this is new to me so is this like a different kind of tla?

4h agoHN ↗

I've always thought CSP as a robust design pattern where you have no shared state between components and they must communicate with each other using message passing. It also requires synchronous communication (rendezvous-style). If you follow those rules you can have a pretty robust system. Aside from these abstract rules, CSP has more formal research (algebra) but I'm not sure if there are any decent tools available.

TLA gives you a full toolbox and in theory can model whatever you can express. That's very different from a design pattern.

4h agoHN ↗

I am learning TLA+ but I do not know CSP, is CSP better?

4h agoHN ↗

Take a writing class. This was painful to read.

3h agoHN ↗

Hahaha this is so funny... people here get slammed all the time of using AI for writing and here be, just someone writing his way through Internet history and gets slammed for it just the same... you can't hardly win with an audience like this... haha

3h agoHN ↗

You can be bad at writing with or without AI.

1h agoHN ↗

If the author threw this into Claude to add some load-bearing similes to their unedited monologue, it would only make it more insufferable to anyone complaining about it now.

3h agoHN ↗

Real world applications of TLA+: https://foundation.tlapl.us/industry/index.html.

The Intel paper shows how TLA+ was applied as a step prior to writing the hardware description. I'm not sure if it caught on, it seems like other tools are used nowdays, does anyone here in the VLSI industry know?

3h agoHN ↗

Took 10 minutes to find this: TLA+ is a formal specification language developed to design, model, document, and verify reactive systems.

3h agoHN ↗

TLA+ is what unit testing looks like when a mathematician designs it.

1h agoHN ↗

It takes about 5 seconds to open Wikipedia and type "TLA+".

3h agoHN ↗

I indirectly use TLA+ through https://github.com/quint-co/quint. I added instructions that "before you implement any feature, please use Quint to model it and make sure no counterexample for the system as a whole, reiterate the design with Quint as well and make sure your documents and implementation follows the formal model and docs".

The result, while takes much longer, is quite magical. A lot of transaction and atomic bugs were found and fixed just by having such simple instruction alone.

However, sometimes it is not all magical especially around external resources. Cloudflare, unfortunately, sometimes have hiccups on D1 and KV with timeout, which is more or less a force majeure.

Fortunately, that means I will have to model the action as a binary event, that the transaction may not complete as we would have thought guaranteed, and by add extra guard around it, so that the state would have to be retried.

I was able to workaround it like that so far. Keep in mind the more conditions and constraints, the beefier your CPU might need since it is on the scale of NP

2h agoHN ↗

17 mentions of “TLA+” before defining the acronym.

1h agoHN ↗

Which is ironic and funny given the other common use of those letters.

1h agoHN ↗

the jump from reading examples to writing a useful invariant is still the hard part

1h agoHN ↗

I did a lot of distsys work With tla+. I still think it’s the best use. It’s really hard to make sure your code matches what you prove.

1h agoHN ↗

I can’t understand any of this. It’s saying everything and nothing at the same time. Whatever TLA+ is this article makes it sound like the most tedious and academic thing ever.

53m agoHN ↗

* You define initial states and all possible state transitions.

* It will brute force all states.

* You can add a variety of assertions.

46m agoHN ↗

Here's my regular engineer explanation:

TLA+ is a specific kind of formal verification framework for software. The overall idea is that you can "prove" that some software works, rather than the typical "seems like it works" we aim for.

But under the covers, all formal verification schemes are (imho) best viewed as "very fancy testing". There are a few kinds of this fancy testing. TLA+ is the kind that can auto-generate all the relevant test cases for your code (there's more to it than that, but this definition works for now). So now instead of "I wrote a bunch of test cases, all that I could think of, and they pass" you have "I used TLA+ so I know I'm exercising all the possible test cases and they pass".

Here's the problem though: to achieve that trick, you have to write your code in a special language (TLA+). It isn't a tool that can be just pointed at regular production code.

So what you get to "prove" is a translation of your actual code into TLA+ code. It may be possible to auto-translate one to the other (I asked the original author if they did that, but no reply yet). Usually it's a manual process. Therefore you have "proof" but not quite as you know it, because you proved something different than what runs. But still more useful than a wet finger raised into the wind.

For this reason it's typically only used on narrow risky pieces of code (quorum voting is the canonical use case).

1h agoHN ↗

the secret's out, but I think I'm still in a minority which has alloy models in addition to TLA+ ones

56m agoHN ↗

If the article's author's writing is this bad, imagine how they write software... shudder.

47m agoHN ↗

I would encourage everyone to try this on some self-contained, state-machine like problems, if they have them. At my company, some experts were optimizing our clustering and failover logic by adding a bit more state (and hence complexity). Despite me not being an expert in that area, I was able to find and prevent a catastrophic bug by pointing Opus armed with TLA+ at the problem. It was a bug that was not possible in the prior implementation of the system and no one thought to write unit tests for the sequence of steps that triggers it, so initially went unnoticed. The only thing that caught it was the TLA+ invariants, which, yes, were written by Opus as well.

As a side note, there's a lot of talk about programming being not fulfilling anymore. But the above exercise was probably the most fun I've had with engineering in a long time, and would have been nearly impossible for me personally without AI. Perhaps it was the novelty of the TLA+ stuff, but I think it offers a glimpse into what our jobs could actually be in the future, beyond simply telling Claude to do what you used to do manually and then clicking enter. There are much more ambitious and fulfilling use cases for it.

14m agoHN ↗

Wow, 16 PRs?

No wonder GitHub keeps going down.

8m agoHN ↗

If you don't even check what you're formalizing you must REALLY trust the agents.

I guess if they found real verifiable bugs then it's good

2m agoHN ↗

We are all good as long as we are all in agreement that vibe-coded TLA+ is just a tool for the agent to do better work, not something that magically proves the code is "correct" in a useful sense

5m agoHN ↗

TLA is pretty excellent for the job it does. In the past, the general issue with tools like this has been keeping the implementation code in sync with the model. Implementing verification tests from model across to the implementation can be tedious and very time consuming.

Now that we have assistants that excel at tedious and time consuming tasks, it’ll be interesting to see if the dominant approach is still using dedicated modeling languages like TLA+ with generated verification harnesses. Or if it’s easier to use something closer to the implementation, similar to what the Stateright project [1] is trying to do.

[1] https://github.com/stateright/stateright