|
|
|
|
|
by nrf1
2565 days ago
|
|
> I am not certain how it'd be best to define a rule that predicates on an absence of a token but that syntax is terrible. That would be pretty confusing. Instead, transitions can always be allowed to happen if the left hand side is satisfied and then the "don't transition if there's an Eve" semantics -- when necessary/desired -- can be made explicit by adding assertions to each nondeterministic transition. For example, if you want 1 Adam and 1 Bob to transition to 1 AliceBob regardless of Eves then you write: Alice + Bob -> AliceBob
but if you want to insist there are no Eves for this rule to hold, then you write: assert(0Eve);
Alice + Bob -> AliceBob
in which case there must be 0 Evens in order for the Alicebob transition to happen.These sorts of nondeterministic transitions with optional guards are expressible in dynamic logic; see see A3 + A8 in [0]. [0] https://en.wikipedia.org/wiki/Dynamic_logic_(modal_logic) |
|