Common concurrent equivalence notions #
This file packages the bisimulation-based equivalence notions that are most useful in practice.
The underlying Refinement.Bisimulation API is intentionally general: it can
talk about any step relation whatsoever. For actual protocol work, however, one
usually wants a smaller family of standard questions:
- do the two systems expose the same controller at each step?
- do they expose the same full controller path?
- do they produce the same external event trace?
- do they preserve the same fairness tickets?
- does a chosen party observe the same thing in both systems?
This file packages exactly those questions as named equivalence notions and records the immediate preservation lemmas for finite run prefixes.
Controller left right means that left and right are bisimilar while
preserving the current controlling party chosen at each executed step.
Instances For
ControllerPath left right means that left and right are bisimilar while
preserving the full controller path of each executed step.
Instances For
Trace left right eventLeft eventRight means that left and right are
bisimilar while preserving the stable external event label attached to each
complete step transcript.
Instances For
Ticket left right ticketLeft ticketRight means that left and right are
bisimilar while preserving the stable tickets attached to complete step
transcripts.
Instances For
Observation me left right means that left and right are bisimilar while
preserving the packed local observations exposed to the fixed party me at
every executed step.
Instances For
Along the forward direction of a controller equivalence, the current controller sequence of every finite run prefix is preserved.
Along the forward direction of a controller-path equivalence, the full controller-path sequence of every finite run prefix is preserved.
Along the forward direction of a trace equivalence, the stable event trace of every finite run prefix is preserved.
Along the forward direction of a ticket equivalence, the stable ticket sequence of every finite run prefix is preserved.
Along the forward direction of an observational equivalence, the packed local observations of the chosen party are preserved on every finite run prefix.