  We present the notion of stateful priorities for imposing precise
restrictions on system actions, in order to meet safety constraints. By using
stateful priorities we are able to exclusively restrict erroneous system
behavior as specified by the constraint, whereas safe system behavior remains
unrestricted. Given a system modeled as a network of discrete automata and an
error constraint, we present algorithms which use those inputs to synthesize
stateful priorities. We present as well a network transformation which uses
synthesized priorities for blocking all system actions leading to the input
error. Our experiments with three real-world examples demonstrate the
applicability of our approach.
