Specification 

A specification of a process is a description of its intended behavior. Typically, the process is to be controlled to adhere to a given specification. Thus, a specification expresses a restriction of the behavior of the process. The process itself sets the physical boundaries for what is possible, while the specification expresses the desired and/or forbidden parts of this. How much we ever want to, we cannot force the process outside its own physical limitations.

Specifications come in many forms, some very informal and other highly formalized. For instance, a specification can be given as a predicate containing free variables, each of which stands for some observable aspect of the behavior of the process. This is a very formal specification. On the other hand, a specification can be given as a text-based, often very vague, description. In either case, to be able to use the specification for synthesis of a controller, it must (most often) be transformed into something that relates to the model of the process. This transformation may be very difficult for several reasons. For one, the transformation depends on the process model. At the same time, what is relevant for the model to capture depends on what we want to achieve, that is, the specification.