-
Notifications
You must be signed in to change notification settings - Fork 44
Add TLA+ Specification Review Guidelines #473
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
941272c to
f7e6e32
Compare
|
Inviting TLA+ experts like @hwayne @muenchnerkindl @will62794, @kape1395, @craft095, @ajdavis, @muratdem, @konnov, ... to contribute their review guidelines and checklist items. |
ddeb57e to
befa190
Compare
00c6a60 to
bf1a5bc
Compare
bf1a5bc to
6a532cc
Compare
|
@muenchnerkindl Thank you (all suggestions have been incorporated)! |
|
Who is the audience of this document? It looks like it is being designed for LLMs. I find the lack of structure in this document rather confusing. |
|
@konnov What other structure are you suggesting? It starts with a section on guidelines of formulas, followed by sections for each section of a TLA+ spec, ending with at section how to do (TLC) model checking. |
I am trying to understand the current structure at the moment. Perhaps, it is the section "Functions, Records, and Sequences" that threw me off, as it focuses on one particular language feature. The following sections on the specification structure look much more complete. |
Yes, the initial section currently contains only this one item, which gives it an unstructured appearance. However, I intend to add more items to the section over time. |
6a532cc to
297c777
Compare
- Introduced a new document outlining best practices for reviewing and validating TLA+ specifications. - Covers key areas such as model checking, simulation, specification structure, constants, variables, invariants, properties, fairness constraints, and documentation standards. - Provides a systematic approach for reviewers to evaluate TLA+ specifications using a producer-consumer example. - An invariant is a better alternative than Assert. - Includes examples for bug injection strategies. - Clarify coverage statistics reporting in TLC, including usage of the `-coverage 1` option for model checking. - References new guide on Functions, Records, and Sequences in TLA+ - Introduced a new document detailing the definitions, modifications, and usage of functions, records, and sequences in TLA+. - Included examples for defining functions, accessing values, modifying functions with `EXCEPT`, and recursive functions. - Explained the relationship between sequences and records as specific cases of functions. [Documentation] Co-authored-by: Stephan Merz <[email protected]> Signed-off-by: Markus Alexander Kuppe <[email protected]>
297c777 to
e7f07aa
Compare
|
@konnov Is your review still pending, or can I proceed with the PR? |
Please go ahead and merge it. I don't want to block your PR. |
This is based on three sources:
a) items that came to mind while reviewing the project
b) material that Claude Sonnet 4.5 extracted from old PR at https://github.com/tlaplus/Examples/pulls
c) discussions that Claude Sonnet 4.5 gathered from https://discuss.tlapl.us/
[Documentation]