TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

The Future of TLA+ [pdf]

195 pointsby tkhattra9 months ago

11 comments

mjb9 months ago
I may have been spending too much time with Lean recently, but the number one thing I’d like to see for the future of TLA+ is an equivalent of Mathlib (<a href="https:&#x2F;&#x2F;github.com&#x2F;leanprover-community&#x2F;mathlib4">https:&#x2F;&#x2F;github.com&#x2F;leanprover-community&#x2F;mathlib4</a>). What’s so great about the experience of using Lean is that I can pull theorems off the shelf from Mathlib, use them if I want to, or learn from the way their proofs work if I want to do something similar.<p>&gt; The reason for using TLA+ is that it isn’t a programming language; it’s mathematics.<p>I love TLA+, I’ve used it for a decade and reach for it often. I have a huge amount of respect for Leslie Lamport and Chris Newcombe. But I think they’re missing something major here. The sematics of TLA+ are, in my mind, a great set of choices for a whole wide range of systems work. The syntax, on the other hand, is fairly obscure and complex, and makes it harder to learn the language (and, in particular, translate other ways of expressing mathematics into TLA+).<p>I would love to see somebody who thinks deeply about PL syntax to make another language with the same semantics as TLA+, the same goals of looking like mathematics, but more familiar syntax. I don’t know what that would look like, but I’d love to see it.<p>It seems like with the right library (see my mathlib point) and syntax, writing a TLA+ program should be no harder than writing a P program for the same behavior, but that’s not where we are right now.<p>&gt; The errors [types] catch are almost always quickly found by model checking.<p>This hasn’t been my experience, and in fact a lot of the TLA+ programs I see contain partial implementations of arbitrary type checkers. I don’t think TLA+ needs a type system like Coq’s or Lean’s or Haskell’s, but I do think that some level of type enforcement would help avoid whole classes of common specification bugs (or even auto-generation of a type checking specification, which may be the way to go).<p>&gt; [A Coq-like type system] would put TLA+ beyond the ability of so many potential users that no proposal to add them should be taken seriously.<p>I do think this is right, though.<p>&gt; This may turn out to be unnecessary if provers become smarter, which should be possible with the use of AI.<p>Almost definitely will. This just seems like a no-brainer to bet on at this stage. See AlphaProof, moogle.ai, and many other similar examples.<p>&gt; A Unicode representation that can be automatically converted to the ascii version is the best alternative for now.<p>Yes, please! Lean has a unicode representation, along with a nice UI for adding the Unicode operators in VSCode, and it’s awesome. The ASCII encoding is still something I trip over in TLA+, even after a decade of using it.
评论 #41386079 未加载
评论 #41386490 未加载
评论 #41387905 未加载
hwayne9 months ago
&gt; The [\EE] operator is needed to explain the theory underlying how TLA+ is used.<p>There&#x27;s another reason to potentially support \EE: it&#x27;s needed to refine specs with auxiliary variables. Currently, if an abstract spec has `aux_hist` to prove a property or something, you <i>need</i> the refinement to have an `aux_hist` equivalent, even if it doesn&#x27;t affect the spec behavior at all. But if checkers could handle `\EE` you could instead leave it out of the refinement and check `\EE aux_hist: Abstract(aux_hist)!Spec`.<p>I think &#x2F;u&#x2F;pron once told me that <i>actually checking</i> a property of that form is 2-EXPTIME complete, though. Which is why it&#x27;s not supported in practice.
rtpg9 months ago
I&#x27;m really not a fan of TLA+&#x27;s tooling, but I do really love the temporal logic. I&#x27;ve always kinda wanted that stuff in other proving languages, but I don&#x27;t know how possible it is.<p>Would it be actually possible to write something like an &quot;a la carte temporal logic library&quot; for other proving languages that could get you some of the confidence you can get from TLA+&#x27;s modeling?<p>(Aside: I have a TLA+ book, but it&#x27;s notably missing really much in terms of exercises or anything. If anyone has any recommendations for a large set of exercises to play around in the space I&#x27;d love to hear about it!)<p>EDIT: turns out just searching for &quot;temporal logic in X language&quot; gets you papers, found this one paper for axiomatizing temporal logic that seems to be a good starting point for anyone looking at this [0]<p>[0]: <a href="https:&#x2F;&#x2F;lim.univ-reunion.fr&#x2F;staff&#x2F;fred&#x2F;Enseignement&#x2F;Verif-M2&#x2F;Articles&#x2F;An%20Axiomatization%20of%20Linear%20Temporal%20Logic%20in%20the%20Calculus%20of%20Inductive%20Constructions-Coupet-Grimal-2002.pdf" rel="nofollow">https:&#x2F;&#x2F;lim.univ-reunion.fr&#x2F;staff&#x2F;fred&#x2F;Enseignement&#x2F;Verif-M2...</a>
评论 #41385888 未加载
bokumo9 months ago
What LaTeX package does one use to get the &quot;back&quot; link at the end of footnotes like the linked PDF exhibits?
评论 #41383380 未加载
评论 #41386532 未加载
wizerno9 months ago
As someone who&#x27;s fascinated by formal verification and who&#x27;s early in their career, what advice do senior folks who have been using TLA+ have?<p>TLA+ isn&#x27;t taught in most universities and while I&#x27;ve read about so many interesting applications, I&#x27;m yet to convince myself that someone would hire me for knowing it rather than just teaching it to me on the job. Any tips to get started would also be appreciated!
评论 #41384732 未加载
评论 #41385555 未加载
pnathan9 months ago
I was looking at TLA a few months ago to consider what it would take to prove multiregion fail over worked correctly. Considering I&#x27;d never looked at it before.<p>I did not find it straight forwardly grokkable, which makes me sad. Maybe it needs a library of axioms? I feel there&#x27;s probably a very nice way to work through it without ingesting effectively a graduate school course in proving software.<p>It really is just math and proofs, it shouldn&#x27;t be so hard... to start.<p>Well, that&#x27;s my take. Could be wrong. Might just need to hit the books.
评论 #41386924 未加载
评论 #41387322 未加载
threatofrain9 months ago
A TLA+ alternative people might find curious.<p><a href="https:&#x2F;&#x2F;quint-lang.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;quint-lang.org&#x2F;</a>
评论 #41384432 未加载
评论 #41386244 未加载
评论 #41383945 未加载
评论 #41388746 未加载
评论 #41383096 未加载
fat_cantor9 months ago
Whoa, I use TLA ironically to joke about Three Letter Acronyms, I had no idea that the Three Letter Acronym (TLA) was in any way related to Temporal Logic Actually. Fascinating!
jayaprabhakar9 months ago
TLA+ is 25 years old. Despite the power it&#x27;s syntax is too alien to become mainstream. Have you considered <a href="https:&#x2F;&#x2F;FizzBee.io" rel="nofollow">https:&#x2F;&#x2F;FizzBee.io</a>? Almost Python-like syntax, has more powerful semantics, beautiful visualizations with no extra work, only formal methods system that can do performance analysis.
penguin_booze9 months ago
&gt; The superscript 1 at the end of this sentence is a link to an end note; click on it now.<p>I bet you a million dollars [0] that Mr. Lamport absolutely is the sole author of this sentence.<p>[0] which I don&#x27;t have. You may resume reading.
Mathnerd3149 months ago
&gt; Simplicity is a major goal of TLA+.<p>Is TLA+ simple? I find this hard to accept.<p>&gt; TLA+ isn’t a programming language; it’s mathematics.<p>Mathematics is not executable, though, whereas TLA+ is.<p>&gt; TLA+ [is better] for its purpose than a programming language.<p>&quot;TLA+ is a formal specification language designed by Leslie Lamport for the specification of system behavior.&quot;<p>&quot;specification of system behavior&quot; sounds like a programming language to me. A systems programming language, even.<p>All this is to say that it seems TLA+ really has no future. If there was a future, like a goal or a roadmap or something, it would be outlined in this document a lot more clearly - whereas, instead, it is more like &quot;nope, everything&#x27;s good, no changes needed&quot;, even as the language appears nowhere on the TIOBE rankings.
评论 #41383894 未加载
评论 #41383860 未加载
评论 #41383867 未加载
评论 #41384409 未加载
评论 #41384648 未加载
评论 #41384035 未加载
评论 #41384196 未加载