Open
Description
When an action is defined using the binary disjunction operator (x or y
), the parser gives en error. When it is defined using the list operator (any { ... }
), it works as expected. It is the same with conjunction.
This is a minimal working example:
module disjunctionBug {
var x: bool
action a = x' = x
action step = a or a // this fails
// action step = any { a, a } // this is ok
}
which outputs the following error:
Expected [x] and [] to be the same
Trying to unify entities ['x'] and []
Trying to unify Read[v2] & Temporal[v3] and Read['x'] & Update['x']
Trying to unify (Read[v2] & Temporal[v3], Read[v4] & Temporal[v5]) => Read[v2, v4] & Temporal[v3, v5] and (Read['x'] & Update['x'], Read['x'] & Update['x']) => e1
Trying to infer effect for operator application in or(a, a)
quint(QNT000)