The application of program verification techniques to hardware verificationJohn A. Darringer1979DAC 1979