A Domain-Specific Language for the Incremental and Modular Design of Large-Scale Verifiably-Safe Flow Networks
Flow networks are inductively defined, assembled from small networks or modules to produce arbitrarily large ones, with interchangeable functionally-equivalent parts. The authors carry out this induction formally using a Domain-Specific Language (DSL). Associated with the authors' DSL is a typing system (or static semantics), a system of formal annotations that enforce desirable properties of flow networks as invariants across their interfaces. A prerequisite for a type theory is a formal semantics, i.e., a rigorous definition of the entities that qualify as feasible flows through the networks, possibly restricted to satisfy additional efficiency or safety requirements.