Replies: 3 comments 1 reply
-
Hi, @michwqy! Thank you for starting the discussion. The best place to look for existing documents that address this question would be our Design Principles. But I think it's great to have more situated discussions on this important topic. Before addressing your question, let me remark in this:
It is worth clarifying that Quint is an alternative surface syntax for expressing
Now, to your question:
We definitely do aim for those two goals! Here are some of the additional value
Lastly, I'd like to note that most of the Quint devs are big fans of TLA+! We Please let us know if you have any more questions, thoughts, or ideas! |
Beta Was this translation helpful? Give feedback.
-
Hi @michwqy! Thanks for asking this question. @shonfeder has already covered the large part of our motivation behind Quint. He did not mentioned our initial hypothesis though: It is hard to write a parser for TLA+ and, as result, it makes it hard for engineers to learn its syntax. Basically, we do not want to change the logic of TLA+ too much, but we are aiming at proving an alternative syntax for the logic of TLA+. One relatively major change is that we are using Another hypothesis that we are checking is whether there is a larger community of engineers who are not learning TLA+ just because of its syntax and lack of tool support that they find in the mainstream programming languages. I have also presented some of these points in the talk at the TLA+ Community Meeting 2023. You can check the slides. Sure, the slides are not as helpful as seeing a talk. We will probably record a talk in the future. |
Beta Was this translation helpful? Give feedback.
-
Thanks very much for your relies @shonfeder @konnov . I wll try to summarize it, because I'm not sure if I get it right. Quint is a newly designed specification language expressing the temporal logic of actions, and it has own simulator and model checking tool. Although Quint can be transpiled into TLA+, there are some syntactic differences between Quint and TLA+. Besides, after reading the slides mentioned by @konnov and the paper metioned in the slides, I have some other questions. Question 1 As far as my personal learning and use experience is concerned, the use of symbolic model detection is faced with a dilemma. For systems with small variable range (or behavior scale), symbolic model checking is significantly slower than explicit model checking. For systems with an unbounded (at least very large) range of variables (or behavioral scale), symbolic model checking is not as effective as testing methods based on satisfiability modulo theories (SMT) (like symbolic execution) or theorem proving. Symbolic Execution can customize the path search strategy and is closer to the programming language (or implementation). Am I right? Or any suggestions for the use of symbolic model checking. Question 2 As mentioned in the slides, there are gaps between design ducuments, formal specification, and implemation codes. Quint provides a syntax closer to programming languages, reducing the gap between the latter two. Are there any other methods to reduce the gaps? Like making specification more easily updated with design or implementation updates. Or model-driven test/ model-based test?
I originally thought this meant that Quint could not only be used for validation, but also be converted into programming languages for execution. |
Beta Was this translation helpful? Give feedback.
-
I don't find an answer in the document, so I start a discussion hoping someone could help me. It looks like Quint is a syntactic sugar of TLA+ and can be translated into it. I'm a little curious if Quint has any other advantages or features over TLA+, besides being closer to programming languages in syntax and more user-friendly for beginners.
Beta Was this translation helpful? Give feedback.
All reactions