Induction and State Machines

This short paper describes a well-known and a non-standard technique for proving properties about sequential circuits. The techniques are based on transforming the circuit to an abstract state machine, and performing several ways of induction on these state machines. We conclude with an insightful correspondence between the two techniques. The proposed methods have been implemented in an experimental way. 1 Background We are interested in proving properties about sequential hardware circuits. We can do this by modelling these circuits as abstract state machines. 1.1 Circuits The notion of circuits we will deal with in this paper, are circuits consisting of the standard logical gates, plus some synchronous delay components. By synchronous we mean that there is one global clock, controlling all delay components in the circuit. A delay component has the following informal semantics. At time t 0 , the output of the component is some speciied initial value. At times t n+1 , the output of the component is equal to the input of the component at time t n. Thus, a delay component stores its input for one clock tick, before it outputs it on the next clock tick. A combinational circuit (a circuit without any delay components) can be seen as a pure function f from its input to its output: f : I ! O

[1]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.