If possible, some more questions (should I create new topics for it?):
- how TLC distinguish between assignment and comparison? E.g. use of x` = 1 in the action definition will be considered as assignment, but as comparison in a temporal property? Can primed variables be used in condition statements in the definition of actions?
- what is necessity of if-then-else operator if conditionality can be naturally expressed with FOL?
- work of print function is quite confusing. I understand that output depends on internal TLC algorithm, so please advise where I may read more about print?
- how TLA+ supports modelling of concurrent systems - parallelism, synchronisation, atomic operations? There are no corresponding keywords in TLA+.
Dear Stefan, thank you for quick answer!If possible, some more questions (should I create new topics for it?):
- how TLC distinguish between assignment and comparison? E.g. use of x` = 1 in the action definition will be considered as assignment, but as comparison in a temporal property? Can primed variables be used in condition statements in the definition of actions?
x' = 1 is a comparison. There is no assignment in TLA+. You are free to use primed variables in lots of unusual places (unusual if you're thinking assignment).
- what is necessity of if-then-else operator if conditionality can be naturally expressed with FOL?
- work of print function is quite confusing. I understand that output depends on internal TLC algorithm, so please advise where I may read more about print?
- how TLA+ supports modelling of concurrent systems - parallelism, synchronisation, atomic operations? There are no corresponding keywords in TLA+.
Thanks again,Vitaliy.
On Wednesday, November 2, 2016 at 3:40:51 PM UTC+8, vit...@ump.edu.my wrote:Hi, is it possible in TLA to specify and check the property linking values of current and next states, like Prop == (x = 1) => (y` = 2). Seems to be the operation "=" for primed variables (as e.g. y') will be considered as assignement, but not comparison? Tq.
The information contained in this e-mail message and any accompanying files is or may be confidential. If you are not the intended recipient, any use, dissemination, reliance, forwarding, printing or copying of this e-mail or any attached files is unauthorised. This e-mail is subject to copyright. No part of it should be reproduced, adapted or communicated without the written consent of the copyright owner. If you have received this e-mail in error please advise the sender immediately by return e-mail or telephone and delete all copies. UMP does not guarantee the accuracy or completeness of any information contained in this e-mail or attached files. Internet communications are not secure, therefore UMP does not accept legal responsibility for the contents of this message or attached files.
--
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 post to this group, send email to tla...@googlegroups.com.
Visit this group at https://groups.google.com/group/tlaplus.
For more options, visit https://groups.google.com/d/optout.
Your questions seem to indicate that you have just seen a little bit about TLA+. Please tell us what you have read so far about TLA+ so we can suggest what you should do to learn more about it.Leslie Lamport
--
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/29WumfrZedo/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tlaplus+unsubscribe@googlegroups.com.
To post to this group, send email to tla...@googlegroups.com.
Visit this group at https://groups.google.com/group/tlaplus.
For more options, visit https://groups.google.com/d/optout.
How much of that book have you read?
E.g. for the print function - how it can be used for analyses of TLA model if its work significantly depends on internal structure of TLC algorithm?
Print(a, b) is defined to equal b. As far as the meaning of a TLA+ specification goes, you can simply replace every instance of Print(a, b) with b. When you run TLC on a model of a specification, it prints out lots of things. What it prints out can depend on whether you write Print(a, b) rather than the equivalent expression b. If you want to understand the output of TLC, you’ll have to learn about TLC—for example, by reading Chapter 14 of Specifying Systems.
Leslie
Dear Leslie,
thank you for your comments. Yes, my reading includes chapter 14.
TLA+toolbox is a blackbox, if not provide possibility to explore their internal mechanisms. And this is what users typically expect from Print operator.
In chapter 14 you said "TLC usually evaluates an expression many times, so inserting a Print expression in the specification can produce a lot of output." This exactly means that structure of output reflects parsing procedure, but not structure of the model or its behaviour.
Print becomes useful if we not only get values, but know points / rules / structure of the output.
And this looks like a problem, especially if we compare parser of a mathematical language with a parser of a programming language, where structure of output is strictly defined.
Yes, to implement output in a language composed from formulas Print also should be a formula.
I use Print only as true formula, and try to avoid all possible optimisation issues, but not always may predict / explain structure of Print output. Another point that seems to be the output depends on the TLC version as well.
Best regards,
Vitaliy.
Leslie