  Self-stabilization ensures that, after any transient fault, the system
recovers in a finite time and eventually exhibits. Speculation consists in
guaranteeing that the system satisfies its requirements for any execution but
exhibits significantly better performances for a subset of executions that are
more probable. A speculative protocol is in this sense supposed to be both
robust and efficient in practice. We introduce the notion of speculative
stabilization which we illustrate through the mutual exclusion problem. We then
present a novel speculatively stabilizing mutual exclusion protocol. Our
protocol is self-stabilizing for any asynchronous execution. We prove that its
stabilization time for synchronous executions is diam(g)/2 steps (where diam(g)
denotes the diameter of the system). This complexity result is of independent
interest. The celebrated mutual exclusion protocol of Dijkstra stabilizes in n
steps (where n is the number of processes) in synchronous executions and the
question whether the stabilization time could be strictly smaller than the
diameter has been open since then (almost 40 years). We show that this is
indeed possible for any underlying topology. We also provide a lower bound
proof that shows that our new stabilization time of diam(g)/2 steps is optimal
for synchronous executions, even if asynchronous stabilization is not required.
