Contracts have been proposed as a formal mechanism to support compositional design first for complex software (e.g., see [1] and references therein) and later for system design (e.g., see [2] and references therein).