  We consider the runtime enforcement of Linear-time Temporal Logic formulas on
decentralized systems with no central observation point nor authority. A
so-called enforcer is attached to each system component and observes its local
trace. Should the global trace violate the specification, the enforcers
coordinate to correct their local traces. We formalize the decentralized
runtime enforcement problem and define the expected properties of enforcers,
namely soundness, transparency and optimality. We present two enforcement
algorithms. In the first one, the enforcers explore all possible local
modifications to find the best global correction. Although this guarantees an
optimal correction, it forces the system to synchronize and is more costly,
computation and communication wise. In the second one, each enforcer makes a
local correction before communicating. The reduced cost of this version comes
at the price of the optimality of the enforcer corrections.
