Generalised Distributive laws in Computer Science are rules governing the transformation of one programming structure into another. In programming, they are programs satisfying certain formal conditions. Their importance has been to date documented in several isolated cases by diverse formal approaches. These applications have always meant leaps in understanding the nature of the subject. However, distributive laws have not yet been given the attention they deserve. One of the reasons for this omission is certainly the lack of a formal notion of distributive laws in their full generality. This hinders the discovery and formal description of occurrences of distributive laws, which is the precursor of any formal manipulation.
In this thesis, an approach to formalisation of distributive laws
is presented based on the functorial approach to formal Category
Theory pioneered by Lawvere and others, notably Gray. The proposed
formalism discloses a rather simple nature of distributive laws of the
kind found in programming structures based on lax 2-naturality and
Gray's tensor product of 2-categories. It generalises the existing
more specific notions of distributive laws. General notions of
products, coproducts and composition of distributive laws are studied
and conditions for their construction given. Finally, the proposed
formalism is put to work in establishing a semantical equivalence
between a large class of functional and object-based programs.
pdf