The logic of engineering design - Hoare, C.A.R. (Microprocessing and microprogramming, 1996)
An engineering product is usually delivered as an assembly of components which generally operate concurrently. The operation of each component can be described scientifically by a specific predicate, describing all its possible behaviors, including all its possible interactions with any other components which may be connected to it in an assembly. For this reason, the joint behavior of many components in the assembly can often be described by the conjunction of these predicates describing the components separately. If some aspect of the component cannot be fully determined in advance, it may be described by the disjunction of predicates describing its alternative modes of behavior. Finally, the links between predicates describing behavior at different levels of granularity and abstraction can be formalized by quantification. The elementary operators of propositional and predicate logic provide all the basic concepts needed for a systematic engineering design methodology.