A rollback of event e on configuration c is a maximal configuration m
with m ⊆ c and e ∉ m.
Equations
Instances For
The set of all rollbacks of event e on configuration c.
Equations
- Rollback.Rollbacks es c e = {m : Conf es | Rollback.isRollback es c e m}
Instances For
Removing the future of e from a configuration keeps it a configuration.
The canonical rollback configuration: remove all events causally after e.
Instances For
Redoability: e is enabled in rollback(c,e) when e ∈ c.
Causal safety: Rollback removes exactly the causal consequences of e.
The canonical rollback is a rollback for c and e.
Any rollback coincides with the canonical rollback.
Rollbacks are unique when they exist.
The rollback is the maximum element among rollback candidates.
Helper: An event in the future is enabled in a partial configuration that contains its strict past and is consistent.
CONJECTURE: For finite configurations, an executable list from rollback to the original configuration exists.
Correctness: The original configuration c is reachable from rollback(c,e)
when the future is finite and < is well-founded.
CONJECTURE: Minimality of Rollback - Any path from a candidate configuration to c is at
least as long as the path from rollback(c,e) to c.