Verification Techniques for Elementary Data Types and Retransmission Protocols Jos van Wamel Abstract: The process algebra ACP (Algebra of Communicating Processes) is a formalism for the specification and verification of parallel, communicating systems. Recently, means for data specification were added to the theory, and a proof theory was defined. A new formalism, muCRL (micro Common Representation Language), forms the basis of these extensions. The thesis contains several theoretical results, as well as applied studies, concerning process theory and abstract data types. It is organised as follows: Chapter 2. We start with an introduction to the relevant axiom systems, proof rules and models from process algebra. Chapter 3. Then some new theory useful for the verification of certain communication protocols is developed. Our technique may be regarded as a method for inspecting the traces of a process in an equational way. Chapter 4. After that, a non-trivial case study in process algebra is provided in the form of a protocol verification. It uses the techniques from the previous chapter. Then a switch is made from pure process algebra to data types. Chapter 5. Here the proof theory for the specification language muCRL is presented, as well as two new, more flexible induction rules than the current one. It turns out that, given some data specification that satisfies certain requirements, useful induction schemes can be proved correct from these rules. In Chapter 6 a number of elementary data types, such as natural numbers, sets and bags, is studied with the emphasis on induction principles and the question how to prove elementary properties of data by induction. Chapter 7. After that an attempt is made to show by means of some examples how data and processes interact, and how the techniques from the previous two chapters carry over to processes in muCRL style. In Chapter 8 a rule for `fair abstraction' for processes with data is presented. This rule makes it possible for a certain class of processes with data parameters to abstract from cycles of internal actions. Finally, in Chapter 9 a large case study is provided, where proof techniques for data and invariants play an important role. It is meant to gather much of the relevant knowledge in the field of protocol verification in muCRL that is available at the moment. An electronic version of this paper can be obtained via ftp.fwi.uva.nl directory pub/programming-research