TLA+ / PlusCalc Cookbook ?

71 views
Skip to first unread message

Kareem Shehata

unread,
Sep 18, 2022, 6:59:11 PM9/18/22
to tlaplus
Hey everyone!

I'm a PhD student studying distributed systems at National University of Singapore and I'm just getting started with TLA+. I was wondering if there was a "cookbook" or any kind of reference for best practices? I've seen plenty of example specs for different systems, but, for example, nothing that explains the right way to set up synchronous message queues or semi-synchronous systems. Other examples: byzantine fault tolerance, digital signatures.

Thanks!

Kareem

Sam Bacha

unread,
Sep 18, 2022, 7:01:25 PM9/18/22
to tla...@googlegroups.com
Specifying Systems, accept no substitute:


--
You received this message because you are subscribed to the Google Groups "tlaplus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tlaplus+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/158c7a50-ea83-43c8-b80c-6c88e59f927fn%40googlegroups.com.

Kareem Shehata

unread,
Sep 19, 2022, 11:55:14 PM9/19/22
to tla...@googlegroups.com
Specifying Systems seems like a great guide for how to think in TLA+, but not a catalog of best practices. What I'm really looking for is a set of patterns based on experiences. Yes, I can probably go through all of Specifying Systems and then write my own way of doing semi-synchronous specs, but why not catalog "here's the best way we've found to do this"?

Thanks,

Kareem


You received this message because you are subscribed to a topic in the Google Groups "tlaplus" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tlaplus/DANnssZ4Fuw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tlaplus+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tlaplus/CABNQDasZTNrZH38%3DexFfMoe6OciTheL_cOojowSscKg72S8ykg%40mail.gmail.com.

Sam Bacha

unread,
Sep 20, 2022, 12:06:50 AM9/20/22
to tla...@googlegroups.com
I have not seen anything like that however here is a list of repos with TLA proofs used in production systems:

Jones Martins

unread,
Sep 20, 2022, 8:08:03 PM9/20/22
to tlaplus
Hi Kareem,

There's a few idiomatic TLA+ tips in the Apalache documentation[1] and in the Learn TLA website[2].

The Examples repository[2] on Github contains many advanced examples, including those used in industry.

If I understand you correctly, you're looking for something closer to design patterns in TLA+ -- in the sense that it's generic enough to be applicable in many situations? I'm not sure this kind of resource is available.

Best, 

Jones

Hillel Wayne

unread,
Sep 20, 2022, 10:54:00 PM9/20/22
to tla...@googlegroups.com
I've been working on it for learntla, but it's gonna be a while before most of the patterns I know are up. Here's what I have so far: https://learntla.com/topics/index.html

Andreas Recke

unread,
Sep 22, 2022, 5:39:21 AM9/22/22
to tlaplus
Hi Kareem,

I found some useful patterns in the book "specifiying systems" by Leslie Lamport.

A lot of examples are also here: https://github.com/tlaplus/Examples
You may also look at different branches of the git, especially when it comes to liveness proofs.

Patterns from TLAPS are here:
With references to more.

Kind regards
Andreas
Reply all
Reply to author
Forward
0 new messages