- Notifications
You must be signed in to change notification settings - Fork79
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
@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. |
BetaWas this translation helpful?Give feedback.
All reactions
👍 1
Replies: 7 comments 6 replies
-
Converted this to a discussion, as they allow for nested comments. |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
RequireAnother syntax feature is a decorator function like
We could write:
See a comment:https://github.com/informalsystems/quint/pull/596/files#r1094462558 |
BetaWas this translation helpful?Give feedback.
All reactions
-
This surprisingly coincides with the discussion about pre/post-conditions in#892 |
BetaWas this translation helpful?Give feedback.
All reactions
-
Optional terminator for valhttps://github.com/informalsystems/quint/pull/596/files#r1094481184
@Kukovec expected a ',' in the end of line after val. |
BetaWas this translation helpful?Give feedback.
All reactions
-
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:
|
BetaWas this translation helpful?Give feedback.
All reactions
-
Anyone who has passed primary school math class should be familiar with function definitions like this:
|
BetaWas this translation helpful?Give feedback.
All reactions
-
I agree: i think we should just explain this in terms of equational reasoning (the lhs can always be replaced with the rhs, modulo substitution) and our users will understand. But this is something we can verify in the user study. |
BetaWas this translation helpful?Give feedback.
All reactions
-
It's not about what people can learn. It's what may surprise people when they see it for the first time. Sure, people might have seen deffoo(x, y)= (x>0 and y>0) Why does it happen? Perhaps, I am not sure about the priority of |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
The keyword for specification parametersThis is a comment by@pdini:
It is not the first time that we have to explain that |
BetaWas this translation helpful?Give feedback.
All reactions
👍 2
-
💯 |
BetaWas this translation helpful?Give feedback.
All reactions
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
-
Default values for specification parametersIn the current syntax, we simply specify constants and expect the user to define the constants values with module spec { constaddr:Set[str]// the rest of the module}module spec3 { moduleI= 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. constaddr:Set[str]=Set("alice","bob","eve")// the rest of the module}module spec5 {// this instance tests the specification for a larger set of addresses moduleI= instance(addr=Set("alice","bob","charlie","eve","fred"))// use the instance} |
BetaWas this translation helpful?Give feedback.
All reactions
-
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. |
BetaWas this translation helpful?Give feedback.
All reactions
👍 1
-
No rush. I was just moving discussion around :) |
BetaWas this translation helpful?Give feedback.
All reactions
This discussion was converted from issue #602 on February 03, 2023 08:56.