Abstract This paper shows how propositional logic may be used to reason about synchronous combinational switching circuits implemented in C-mos. It develops a simple formalism and theory for describing and predicting their behaviour. On this it builds a calculus of design which is driven by proof obligations. The design philosophy for software introduced in  is thereby extended to a certain kind of hardware design. No prior knowledge of hardware is assumed of the reader; but useful background, motivation, examples and pictures may be found in . Many of the problems described in that paper have been solved in this one.