UoY-RoboStar / robocert-metamodel

Metamodel plugins for RoboCert
Other
0 stars 0 forks source link

Separate anything and until #1

Closed MattWindsor91 closed 1 year ago

MattWindsor91 commented 2 years ago

To allow until to be a generalised timeout operator, it makes sense to separate 'anything' and 'until' such that the former is an infinite loop over a message set and the latter is a linearised timeout.

The syntax in robocert-textual would likely flip ('until: X do: anything') or be clarified ('do: anything until: X'), or even be used to reflect the fact that until is similar to strict.

MattWindsor91 commented 2 years ago

Draft tock-CSP semantics:

[[ any in X ]] = TCHAOS(X)

[[ until: X do: Y ]] = Y /\ X

This makes clear that each of these is a direct embedding of a CSP construct. It might be worth looking into whether PCTL and Isabelle-UTP will be able to capture these.

MattWindsor91 commented 2 years ago

Adding question label as this needs to be discussed.

MattWindsor91 commented 1 year ago

A big issue with the above semantics is that it doesn't induces nondeterminism if Y performs any of the initial events in X. Instead, I think we need something like

Do(P, initials) = P [| Universe |] TCHAOS(diff(Universe, initials))

This process ensures that P cannot perform any events in initials.

I would also change the textual semantics to do X until Y.

MattWindsor91 commented 1 year ago

Done a while back.