A Theory of Mutations with Applications to Vacuity, Coverage, and Fault Tolerance ================================================================================= The quality of formal specifications and the circuits they are written for can be evaluated through sanity checks such as vacuity and coverage. Both checks involve mutations to the specification or the circuit implementation. We study and prove properties of mutations on finite-state systems. We demonstrate theoretically and with a case study how relations and orders amongst mutations can be used in order to automatically generate tighter specifications and reason about coverage of fault tolerant circuits.