You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I attached the most permissive state graph for srHalfLatch. Here pink arcs have the 'may-fire' semantics for outputs, while the usual black ones correspond to usual 'must-fire' semantics.
The idea is that in states 100 and 011 the circuit must eventually do q+ and q- transitions, respectively. On the other hand, in states 110 and 111 the circuit may switch q but doesn't necessarily have to. If we remove the pink arcs, then we get @jrbeaumont's spec for srHalfLatch. If we forbid states 110 and 111 by restricting the environment we get my spec.
Unfortunately, without pink/may arcs we cannot have a fully permissive specification.
Can we add support for may-fire semantics to Plato?
The text was updated successfully, but these errors were encountered:
Note that there is a simple monoid on 'no/may/must` arcs:
dataDependency=No | May | Mustderiving (Eq, Ord)
instanceMonoidDependencywheremempty=Nomappend=max
That is, May combined with Must gives us Must, and No is the identity.
This means that one can start with a very permissive concept specification and later add a few Must dependencies in the environment that fully resolve the ambiguity leading to purely Must-ful specifications.
As discussed in #83:
I attached the most permissive state graph for
srHalfLatch
. Here pink arcs have the 'may-fire' semantics for outputs, while the usual black ones correspond to usual 'must-fire' semantics.The idea is that in states
100
and011
the circuit must eventually doq+
andq-
transitions, respectively. On the other hand, in states110
and111
the circuit may switchq
but doesn't necessarily have to. If we remove the pink arcs, then we get @jrbeaumont's spec forsrHalfLatch
. If we forbid states110
and111
by restricting the environment we get my spec.Unfortunately, without pink/may arcs we cannot have a fully permissive specification.
Can we add support for
may-fire
semantics to Plato?The text was updated successfully, but these errors were encountered: