Traditionally, many automatic program verification techniques are applicable only to finite-state programs. In this paper we show how to extend some verification techniques to infinite-state programs that may read, store, and write data but not perform any other computations. We present algorithms for deciding strong equivalence and observation equivalence, defined by bisimulations (as in CCS), between such programs. These algorithms have major applications in verification of communication protocols. The equivalence problems are shown to be NP-hard in the size of the programs.
A revised and more complete version located in Proc. 6th Annual Symp. on Theoretical Aspects of Computer Science, Paderborn, FRG, Feb. 1989. Published in Springer-Verlag's series: Lectures Notes in Computer Science, Vol. 349, 1989, pp. 421-433. Original report number R89008.