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

Compositional Models for Complex Systems  251


              implemented at different levels of abstraction; the design process has many
              implementation vertices, and these occur at different levels of the decompo-
              sition tree. Finally, the V structure is also too linear in time, suppressing the
              back-and-forth interaction between layers resulting from contract rejection
              and redesign; a W might be better.
                 We have just given a generic, step-wise description of the engineering
              design process based prior characterizations (Gorti et al., 1998). In the next
              few sections we will show how the mathematics of CT provides a unified
              framework for describing (de)composable systems, supporting the complex
              representations needed to support this view of engineering.


              13.4 INDUCTIVE DATATYPES AND ALGEBRAIC
              STRUCTURES

              We have just given a semiformal model of system design as a recursive pro-
              cess. In order to make this account more precise, the next few sections will
              introduce some formal language and tools from CT. Here we discuss the
              theory of functorial algebras and inductive datatypes, which provides a uni-
              form framework for analyzing compositional (algebraic) systems. These will
              provide the language that we need in order to structure our intuitive analysis
              from the previous section.
                 Generally speaking, algebra concerns mathematical structures with spec-
              ified operations for combining or transforming their elements. In arithmetic,
              the operations are “plus” (+) and “times” ( ); in Boolean algebra the oper-
              ations are “and” (^) and “or” (_). An algebraic signature is a list of operations
              (and constants), and a term in the signature is any string that can be built up by
              applying these operations to constants, variables, and other terms. This
              allows us to iteratively build up more and more complicated terms:


                             3       3+ x )

                             x       3 x        ð 3 xÞ + y +7Þ
                                 )
                                                         ð
                                            )
                             y       y +7       ð 3 xÞ  y +7Þ
                                                         ð
                             7   )   y 7
                 Any signature defines two important mathematical structures. First, there
              is the class of algebraic structures that implement the signature. In the case
              of arithmetic, this would be set X together with two binary functions +,  :
              X   X ! X (and probably elements 0, 1 2 X). These include the usual num-
              ber systems (, , etc.) as well as more complex structures like polynomials
              and matrices.
   268   269   270   271   272   273   274   275   276   277   278