Component-based design is widely used in embedded software design, where a new component can be generated by composing existing components. However a composition does not always generate a valid component. We define a composition to be valid with respect to a property if the composition preserves that property under certain context. In order to reason about whether a composition is valid, we ne...