In this paper we present a type system for the data language of mCRL2, a process algebra based language for formalising the behaviour of communicating system. Much of the type system is standard, and follows the line of, e.g., Pierce [Pie02]. The data language that is described is rich, and supports (infinite) sets and bags, universal and existential quantification, and lambda abstraction. Recursive types can be defined using equational definitions. Subtyping is included for the full data language, and a coercion is given to transform a well-typed expression into a strictly typed expression.
|Name||Computer science reports|