Replies: 7 comments 6 replies
-
Converted this to a discussion, as they allow for nested comments. |
Beta Was this translation helpful? Give feedback.
-
RequireAnother syntax feature is a decorator function like
We could write:
See a comment: https://github.com/informalsystems/quint/pull/596/files#r1094462558 |
Beta Was this translation helpful? Give feedback.
-
Optional terminator for valhttps://github.com/informalsystems/quint/pull/596/files#r1094481184
@Kukovec expected a ',' in the end of line after val. |
Beta Was this translation helpful? Give feedback.
-
Equality in definitionsWe have received early feedback that the the equality sign in operator definitions may look surprising, e.g.:
We don't know the exact reason for this, but this syntax may indeed look surprising to people who worked only with imperative languages before. There are two alternatives to the current syntax:
|
Beta Was this translation helpful? Give feedback.
-
The keyword for specification parametersThis is a comment by @pdini:
It is not the first time that we have to explain that |
Beta Was this translation helpful? Give feedback.
-
Default values for specification parametersIn the current syntax, we simply specify constants and expect the user to define the constants values with module spec {
const addr: Set[str]
// the rest of the module
}
module spec3 {
module I = instance(addr = Set("alice", "bob", "eve"))
// use the instance
} This approach is nice and general, but this makes the simplest use cases a bit too complicated. The beginners have to remember that module spec {
// The address is set to the three-element set by default.
// This spec is executable and testable right away, without the need for instance.
const addr: Set[str] = Set("alice", "bob", "eve")
// the rest of the module
}
module spec5 {
// this instance tests the specification for a larger set of addresses
module I = instance(addr = Set("alice", "bob", "charlie", "eve", "fred"))
// use the instance
} |
Beta Was this translation helpful? Give feedback.
-
Thank you Igor for cc’ing me. I confess that I don’t remember talking about this point, but I will keep it in mind since ASMs are very much function-based.
Once the CoFi white paper(s) are done I will have more time to come back to specification. The idea of an CASM-Quint-CASM translation is still alive, even if not much progress has been made. I just spoke about it with Philipp Paulweber on Tuesday. To me it’s important because it’s the only way I will be able to learn how to make use of Quint properly, even though the TLA+ substrate does help understanding.
Going on vacation from tomorrow until the 15th of August, back on the 16th. Perfect time for some theoretical thinking! :-)
Cheers,
Paolo
… On 21 Jul 2023, at 09:48, Igor Konnov ***@***.***> wrote:
This surprisingly coincides with the discussion about pre/post-conditions in #892 <#892>
—
Reply to this email directly, view it on GitHub <#608 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA6HG24FG6TQK6ZOD3YSSG3XRIX6PANCNFSM6AAAAAAUQAOYOQ>.
You are receiving this because you were mentioned.
|
Beta Was this translation helpful? Give feedback.
-
@shonfeder and I discussed one more potential syntax change. Instead of creating another discussion on that, we thought that it probably makes sense to list small syntax changes in this issue. We could use these ideas to conduct a user survey later.
/cc @bugarela, @thpani, @Kukovec
Beta Was this translation helpful? Give feedback.
All reactions