1 Introduction
The two-element Boolean algebra, , has been the standard algebra for circuit analysis and design, since Shan-non's pioneering work in 1938 [36]. The problem of hazards has been recognized very early; hazards were already discussed in 1951 in a book by Keister, Ritchie and Washburn [24]. In 1957 Huffman [23] proposed informal definitions of static and dynamic hazards, and provided some characterizations of these hazards. Roughly speaking, a static hazard is one or more pulses occurring in a signal which should be constant, and a dynamic hazard is one or more pulses in a signal that is changing from one binary value to the other. A more formal treatment of hazards was given by McCluskey [29] in 1962, and further results were obtained by Unger [38] in 1969. These early works used the two-valued Boolean algebra for gate circuits.