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.

Principles of TLA+

121 pointsby pramodbiligirialmost 8 years ago

7 comments

michaelmioralmost 8 years ago
Leslie Lamport has a video course[0] on TLA+ that&#x27;s slowly being released. I created an RSS feed[1] that updates as new episods are released.<p>[0] <a href="https:&#x2F;&#x2F;lamport.azurewebsites.net&#x2F;video&#x2F;videos.html" rel="nofollow">https:&#x2F;&#x2F;lamport.azurewebsites.net&#x2F;video&#x2F;videos.html</a><p>[1] <a href="http:&#x2F;&#x2F;fetchrss.com&#x2F;rss&#x2F;58d198538a93f8ef3b8b4567741573560.atom" rel="nofollow">http:&#x2F;&#x2F;fetchrss.com&#x2F;rss&#x2F;58d198538a93f8ef3b8b4567741573560.at...</a>
hwaynealmost 8 years ago
First of all, as always, huge respect for your work, and I&#x27;m looking forward to reading the rest of the posts. There is something I&#x27;d like to start a discussion on, though:<p>&gt; nor will reading these posts teach you how to write good specifications; so this series is neither necessary nor sufficient for putting TLA+ to good use, but I think it is both necessary and sufficient for understanding it.<p>Emphasis on the &#x27;good specifications&#x27; part: I think this is a _huge_ oversight in the TLA+ community and the biggest barrier to its current adoption. The problem isn&#x27;t that people don&#x27;t understand (or can&#x27;t understand) the theory behind it, yet it&#x27;s the thing everybody focuses on teaching. The problem is specification: _nobody_ is talking about how to actually <i></i>use<i></i> TLA+. In fact, some of the advice given is actively harmful!<p>One example: in _Specifying Systems_, Lamport defines a memory cache with the operator `NoVal == CHOOSE v : v \notin Val`. He explicitly calls this best practice, because adding a `NOVAL` constant would be making the model more complex. Except unbounded CHOOSE is not checkable by TLC! While `NoVal` is nice for abstract specifications, it breaks things in the 99% of cases where you&#x27;re actually using TLA+.<p>I find it telling that the majority of example TLA+ specs &quot;in the wild&quot; are either abstract algorithms or optimization problems. The things you don&#x27;t find? How to write good invariants. When you should be using raw TLA+ versus the PlusCal syntax. Example models. Optimization your model checking. The stuff that might get people to start using TLA+ and _keep_ using it.<p>Again, none of these are criticisms of your work or your writing. I just wanted to openly say that if your goal is to get people interested in the theory of TLA+, it&#x27;s great, but if it is to get people interested in use of it, a lack of good theoretical introductions isn&#x27;t the main barrier.
评论 #14442175 未加载
评论 #14435935 未加载
plinkplonkalmost 8 years ago
Very nice. I really appreciate you placing TLA+ in context with alternate approaches. I look forward to seeing the followup posts.<p>PS: How are you generating these pages? Jekyll? something else?<p>EDIT: This probably needs editing -- &quot;nor will reading the posts will not teach you how to write good specifications;&quot;<p>I <i>think</i> you probably meant to write &quot;nor will reading the posts teach you how to write good specifications;&quot;
评论 #14433834 未加载
nickpsecurityalmost 8 years ago
@ pron<p>This is a great write-up I learn quite a bit from but way, way, too long. There&#x27;s a lot of redundancy in here much like my first sentence. You should try to condense this since the redundancy might make a chunk of the modern crowd think the rest of what they see in the scrollbar will be the same and move on to next article. The last write-up you sent me didn&#x27;t have that problem.<p>I&#x27;m glad I saw this, too, as I recently watched your video citing all the mathematical evidence that correctness may not decompose. I got one or two counterpoints to email you later but overall want your data peer reviewed by people highly experienced in abstractions in large, verification efforts and making VCG&#x27;s given their output will have to compose, too. Let all the pro&#x27;s duke it out with arguments, proofs, and attempts at actual projects. I&#x27;ll reserve judgment until the dust settles. :)
评论 #14435477 未加载
评论 #14434953 未加载
dgreenspalmost 8 years ago
Great article, and I look forward to the next! I&#x27;ve been meaning to learn about TLA+ for a while.<p>One thought I didn&#x27;t see expressed, in all the comparisons of tools and approaches, is that sometimes you don&#x27;t care about time and state. In purely &quot;transformational&quot; programs, like compilers, for example, all state is incidental complexity, so we can analyze them as pure functions. Meanwhile, all the questions such as whether we can just execute the spec and whether we can prove properties of real programs remain. New web frameworks are trying to keep the parts that deal with time and state as small and self-contained as possible, leaving the rest to be described using functions.<p>Couldn&#x27;t we say that the factor of &quot;do you care about time&quot; is behind observations such as that TLA+ is mostly popular with concurrent and distributed systems, or that approaches that only look at function contracts often apply to pieces of a program but not the whole? As a more specific statement than, for example, that distributed systems are particularly hard so they necessitate particularly powerful tools.
评论 #14435500 未加载
storrgiealmost 8 years ago
writeup aside, this is a really nice template... similar to tufte margins. I&#x27;d love to see the source&#x2F;style for the site...
评论 #14441369 未加载
avodonosovalmost 8 years ago
There are interesting pieces of information, but its very long