Want to take part in these discussions? Sign in if you have an account, or apply for one below
Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.
Lazy lambda calculus only reduces the part of the term in head position. If we try to model rewrites as 2-morphisms in some higher category of types, terms, and rewrites, then we find that the existence of a rewrite between two terms does not imply the existence of a rewrite . The naive interpretation of closedness as an equivalence between categories of terms doesn’t hold in lazy lambda calculus.
In lambda calculus, rewrites are confluent, so this issue can be “swept under the rug” to some extent. However, in the pi calculus, one may not reduce a term under a prefix. The term means “Wait until receiving a message on the channel and only afterwards do the process .” In concrete terms, this is something like “Wait until you receive the order, and only afterwards attack the enemy.” It is terribly important that things be done in the proper order.
Both of these situations have a preferred “reference frame” where rewrites are allowed to occur: head position in lambda calculus, and the global scope in pi calculus.
http://arxiv.org/abs/0906.2727 does an admirable job in addressing these points. It describes the notion of a reactive system, a category (whose morphisms are thought of as terms with holes in them, a.k.a. “contexts”) equipped with a special object O (the global scope), a subcategory of “reactive” contexts out of O satisfying a factorization property, and a collection of rewrites encoded as a relation. However, it seems rather ad-hoc, just throwing together the pieces needed to solve the puzzle.
Does this structure arise naturally in some other way? What’s the right generalization to n-categories? Are there other examples of systems where the absolute context is necessary for knowing whether a rewrite or reaction can occur? (I’d be surprised if biology doesn’t offer a few.)
1 to 1 of 1