Replies: 5 comments 22 replies
-
One idea for conjunctions and disjunctions is to make them look a bit more like JS promises (but not exactly like them):
|
Beta Was this translation helpful? Give feedback.
-
More discussions about |
Beta Was this translation helpful? Give feedback.
-
I have been thinking about
As a result, in simple cases we will have a combination of initializer Init = all {
x <- oneOf(Int),
next(x) % 2 == 0
} In more complex cases, the users can still use
|
Beta Was this translation helpful? Give feedback.
-
How should we represent the relation between states?0. ContextA number of related questions have been circulating in our discussions:
More recently, in Quint meetings, we've pondered these questions:
The root issue in all these questions seems to be instability or inadequacy in My current hypothesis is that most of the problems we are seeing arise form lack of a clear and perspicuous method of representing the relations (qua relational) between states, which is the core concern of an actions. As per Lamport: "An action represents a relation between old states and new states". In the replies and discussion, I hope to tease out this hypothesis a bit. |
Beta Was this translation helpful? Give feedback.
-
Also closing this one, as we are not going to change the related syntax in the near future. |
Beta Was this translation helpful? Give feedback.
-
As we have discussed recently, the syntax for action-level operators
<-
,guess
,&
, and|
seems to be less intuitive than the syntax for other operators. For instance, here is one alternative forguess
: #183 (comment)At some point, we would like to conduct a user survey, to see which syntax is more intuitive to the engineers, who have never seen TLA+/Quint before. Let's collect all potential alternatives here. No judgement, all ideas are welcome. But no guarantee that any of these alternatives would be implemented.
Here are the four operators in question and their current syntax in Quint/TLA+:
x <- e
in Quint andx' = e
in TLA+.S.guess({ x => e })
in Quint and\E x \in S: e
in TLA+.{ A1 & ... & An }
in Quint andA1 /\ ... /\ An
in TLA+.{ A1 | ... | An }
in Quint andA1 \/ ... \/ An
in TLA+.Beta Was this translation helpful? Give feedback.
All reactions