Page 271 - Artificial Intelligence for the Internet of Everything
P. 271

Compositional Models for Complex Systems  249


              Though the methods are rather sophisticated, we note that temporal con-
              siderations like these can be built directly into the type theory governing
              the state variables (see Schultz & Spivak, 2017).
                 Definition 13.1 The input data to a recursive problem in engineering
              design consists of a set of typed state variables describing the boundaries of
              the desired system (the interface) and a set of logical statements (require-
              ments) written in these variables (the contract).
                 The engineer or team assigned to such a problem has one of three
              options: to implement directly, to reject, or to decompose.
                 To implement directly, the engineer must provide a specific design that
              implements the given interface together with testing indicating that the
              design fulfills the assigned contract. A formal representation for either tests
              or designs is beyond the scope of this chapter, and will necessarily be quite
              complex. However, in the section on operads we will identify some affor-
              dances that are needed to support the composition of design representations.
                 Alternatively the engineer might reject the contract as infeasible. We can
              imagine different levels for rejection. Local infeasibility is an admission by the
              engineer that he or she cannot provide a design meeting the contract spec-
              ification; in that case the component design may be reassigned to someone
              with more or different expertise. This stands in contrast to global infeasibil-
              ity, where the engineer produces models or reasoning indicating that the
              contract cannot be satisfied, in which case the contract must be redesigned.
              Regardless, in the recursive structure of engineering it is up to the customer
              or a higher-level engineer to deal with rejection.
                 Finally, and most relevant here, the engineer may recursively decom-
              pose the problem. One first identifies a collection of subcomponents, along
              with interfaces, their types, and state spaces. Next, he/she must design a
              system architecture that specifies how these component interfaces line
              up with one another and the exterior boundaries. Finally, he/she should
              provide a contract on each component interface, as well as one or more
              models that indicate that the component contracts and the architecture
              together ensure that the system meets its own external contract. The engi-
              neer then passes the component interfaces and contracts to the next level of
              the recursion.
                 With either direct implementation or rejection, the recursive step is
              closed, but in decomposition we must wait for the recursive processes to
              return. There are a number of possibilities. First, one or more of the subde-
              sign processes may reject the contract as infeasible. If the infeasibility is local,
   266   267   268   269   270   271   272   273   274   275   276