  One of the challenges of modern engineering, and robotics in particular, is
designing complex systems, composed of many subsystems, rigorously and with
optimality guarantees. This paper introduces a theory of co-design that
describes "design problems", defined as tuples of "functionality space",
"implementation space", and "resources space", together with a feasibility
relation that relates the three spaces. Design problems can be interconnected
together to create "co-design problems", which describe possibly recursive
co-design constraints among subsystems. A co-design problem induces a family of
optimization problems of the type "find the minimal resources needed to
implement a given functionality"; the solution is an antichain (Pareto front)
of resources. A special class of co-design problems are Monotone Co-Design
Problems (MCDPs), for which functionality and resources are complete partial
orders and the feasibility relation is monotone and Scott continuous. The
induced optimization problems are multi-objective, nonconvex,
nondifferentiable, noncontinuous, and not even defined on continuous spaces;
yet, there exists a complete solution. The antichain of minimal resources can
be characterized as a least fixed point, and it can be computed using Kleene's
algorithm. The computation needed to solve a co-design problem can be bounded
by a function of a graph property that quantifies the interdependence of the
subproblems. These results make us much more optimistic about the problem of
designing complex systems in a rigorous way.
