Delta lenses as coalgebras for a comonad
Abstract.
Delta lenses are a kind of morphism between categories which are used to model bidirectional transformations between systems. Classical state-based lenses, also known as very well-behaved lenses, are both algebras for a monad and coalgebras for a comonad. Delta lenses generalise state-based lenses, and while delta lenses have been characterised as certain algebras for a semi-monad, it is natural to ask if they also arise as coalgebras.
This short paper establishes that delta lenses are coalgebras for a comonad, through showing that the forgetful functor from the category of delta lenses over a base, to the category of cofunctors over a base, is comonadic. The proof utilises a diagrammatic approach to delta lenses, and clarifies several results in the literature concerning the relationship between delta lenses and cofunctors. Interestingly, while this work does not generalise the corresponding result for state-based lenses, it does provide new avenues for exploring lenses as coalgebras.
Key words and phrases:
delta lens, cofunctor, coalgebra, bidirectional transformation2020 Mathematics Subject Classification:
18C151. Introduction
The goal of understanding various kinds of lenses as mathematical structures has been an ongoing program in the study of bidirectional transformations. For example, very well-behaved lenses [9], also known as state-based lenses [4], have been understood as both algebras for a monad [14] and coalgebras for a comonad [16, 10]. A generalisation of state-based lenses called category lenses [15] were also introduced as algebras for a monad, based on classical work in -category theory on split opfibrations [18]. Another kind of lens between categories called a delta lens [7] was shown to be a certain algebra for a semi-monad [12], however it remained open as to whether delta lenses could also be characterised as (co)algebras for a (co)monad.
The purpose of this short paper is to characterise delta lenses as coalgebras for a comonad (Theorem 9). The proof of this simple result builds upon and clarifies several recent advances in the theory of delta lenses.
In 2017, Ahman and Uustalu introduced update-update lenses [4] as morphisms of directed containers [2], which are equivalent to certain morphisms called cofunctors between categories [1]. In the same paper, they show explicitly how, using the notation of directed containers, delta lenses may be understood as cofunctors with additional structure.
In earlier work [3] from 2016, Ahman and Uustalu also provide a construction on morphisms of directed containers which yields a split pre-opcleavage for a functor; in other words, they show how cofunctors may be turned into delta lenses. We show that this construction is actually a right adjoint to the forgetful functor from delta lenses to cofunctors (Lemma 8), and that the coalgebras for the comonad generated from this adjunction are delta lenses (Theorem 9).
In 2020, a diagrammatic characterisation of delta lenses was introduced by the current author [5], building upon an earlier characterisation of cofunctors as spans [11]. This diagrammatic approach is utilised throughout this paper, and leads to another simple characterisation of delta lenses (Proposition 6).
Overview of the paper and related work
This section provides an informal overview of the paper, together with further commentary on the background, and references to related work. The goal is to provide a conceptual understanding of the results; later sections will be dedicated to the formal mathematics.
Section 2 contains the mathematical background required for the main results, which are presented in Section 3. Consequences of the main result and concluding remarks are in Section 4.
Throughout the paper we make the assumption that a system, whatever that may be, can be understood as a category. The objects of this category are the states of the system, while the morphisms are the transitions (or deltas) between system states.
Delta lenses were introduced in [7, Definition 4] to model bidirectional transformations between systems when they are understood as categories. The Get of a delta lens is a functor from the source category to the view category , while the Put is a certain kind of function (that this paper calls a lifting operation) satisfying axioms analogous to the classical lens laws. A slightly modified definition of delta lens appeared in [12, Definition 1], however this definition still seemed to be ad hoc, and made it difficult to prove deep results without checking many details.
The definition of delta lens (Definition 4) given in this paper is based on a diagrammatic characterisation which first appeared in [5, Corollary 20], by representing the Put in terms of bijective-on-objects functors (Definition 1) and discrete opfibrations (Definition 2). This diagrammatic approach provides a natural framework for studying delta lenses using category theory, and has the benefit of allowing for very simple (albeit more abstract) proofs. This approach will be utilised throughout this paper, although in many places we will also include explicit descriptions of constructions using the traditional definition of a delta lens.
A key idea presented in [4, 5] is that the Get and Put of a delta lens can be separated into functors and cofunctors (Definition 3), respectively. Intuitively, a cofunctor can be understood as a delta lens without any information on how the Get acts on morphisms; it is the minimum amount of structure needed to specify a Put operation between categories. It was shown in the paper [4] that delta lenses are cofunctors with additional structure. In this paper, we aim to show that said structure arises coalgebraically via a comonad.
Both delta lenses and cofunctors are predominantly understood and studied as morphisms between categories, however to prove that delta lenses are cofunctors equipped with coalgebraic structure, it is necessary for them to be understood as objects. Therefore this paper introduces a new category , whose objects are cofunctors into a fixed category (Definition 5). The category , whose objects are delta lenses into a fixed category , was previously studied in [13, 6]. Surprisingly, we show that the category can be defined (Definition 7) as the slice category . Not only does this provide a new characterisation of delta lenses in term of cofunctors (Proposition 6), but also provides the insight that the canonical forgetful functor , which takes a delta lens to its underlying Put cofunctor, is a projection from a slice category.
Finally, proving that delta lenses are coalgebras for a comonad on amounts to showing that the forgetful functor is comonadic (Theorem 9). A necessary condition is that has a right adjoint (Lemma 8), which constructs the cofree delta lens from each cofunctor in . This construction first appeared explicitly in [3, Section 3.2], however it was not obviously a right adjoint — or even a functor — and it was disconnected from the context of cofunctors and delta lenses. Both Lemma 8 and Theorem 9 admit straightforward proofs, with the benefit of the diagrammatic approach to cofunctors and delta lenses.
Notation and conventions
This section outlines some of the notation and conventions used in the paper. Given a category , its underlying set (or discrete category) of objects is denoted . Given a functor , its underlying object assignment is denoted . Similarly, a cofunctor will have an underlying object assignment . Thus the orientation of a cofunctor agrees with the orientation of its underlying object assignment (this convention is chosen to agree with the orientation of delta lenses, however this choice is not uniform in the literature on cofunctors). The operation sends each morphism to its codomain or target object.
2. Prerequisites for the main result
We first recall two special classes of functors, which we will use as the building blocks for defining cofunctors and delta lenses. New contributions in this section include the category whose objects are cofunctors (Definition 5), and the characterisation of delta lenses as certain morphisms therein (Proposition 6).
Definition 1.
A functor is bijective-on-objects if its underlying object assignment is a bijection.
Definition 2.
A functor is a discrete opfibration if for all pairs,
there exists a unique morphism in such that .
Definition 3.
A cofunctor between categories is a span of functors,
(1) |
where is a bijective-on-objects functor and is a discrete opfibration.
Alternatively, a cofunctor consists of a function , together with a lifting operation , which assigns each pair to a morphism in , such that the following axioms are satisfied:
-
(1)
;
-
(2)
;
-
(3)
, where .
Definition 4.
A delta lens between categories is a commutative diagram of functors,
(2) |
where is a bijective-on-objects functor and is a discrete opfibration.
We can also describe a delta lens as consisting of a functor together with a lifting operation , which assigns each pair to a morphism in , such that the following axioms are satisfied:
-
(1)
;
-
(2)
;
-
(3)
, where .
Every delta lens has an underlying functor and an underlying cofunctor , and their corresponding underlying object assignments are equal; that is, .
Definition 5.
For each category , there is a category of cofunctors over the base whose objects are cofunctors with codomain , and whose morphisms are given by commutative diagrams of functors of the form:
(3) |
Equivalently, a morphism in from a cofunctor to a cofunctor consists of a functor such that for all , and for all pairs . The functor is then uniquely induced from this data. Intuitively, if and are understood as source categories with a fixed view category , then the morphisms in are functors between the source categories which preserve the chosen lifts, given by the corresponding cofunctors, from the view category.
Proposition 6.
Every delta lens is equivalent to a morphism in whose codomain is the trivial cofunctor on .
Proof.
Consider the morphism in given by the commutative diagram of functors:
(4) |
The upper commutative square describes a delta lens as given in Definition 4. Conversely, every delta lens may be depicted as a morphism in in this way. ∎
We can unpack (4) using the explicit characterisation of morphisms in to obtain the precise difference between cofunctors and delta lenses, in terms of objects and morphisms. Namely, the diagram (4) states that a delta lens corresponds to a cofunctor together with a functor such that for all , and for all pairs .
Definition 7.
For each category , we define the category of delta lenses over the base to be the slice category , where is the trivial cofunctor on .
By Proposition 6, the objects of are delta lenses with codomain , represented as a morphism into the trivial cofunctor as shown in (4). The morphisms in are given by morphisms (3) in such that the following pasting condition holds:
(5) |
In other words, the only additional requirement on a morphism between delta lenses over , compared to a morphism between cofunctors over , is that . This is opposed to just requiring on objects (where recall for delta lenses, the underlying object assignments for the functor and cofunctor are equal, that is, and ).
There is a canonical forgetful functor,
which assigns every delta lens to its underlying cofunctor. This forgetful functor is the focus of the main result in the following section.
3. Main result
While not every cofunctor may be given the structure of a delta lens, Ahman and Uustalu [3] developed a method which constructs a delta lens from any cofunctor. To understand their construction, first recall that the underlying objects functor has a right adjoint which takes each set to the codiscrete category .
Given a cofunctor with underlying object assignment , we may construct the following pullback in :
(6) |
Here is the component of the unit for the adjunction at , and the component of the unit at followed by image of under the right adjoint. Using the universal property of the pullback, we have the following:
(7) |
Since is bijective-on-objects, the projection functor is also bijective-on-objects which, together with the functor , implies that is bijective-on-objects, due to the properties of bijections at the level of objects. Thus, the upper right triangle in (7) defines a delta lens .
The category has the same objects as , but morphisms in are given by pairs of the form . The functor projects to the second arrow in this pair. The lifting operation which makes this functor into a delta lens is induced by the lifting operation of the original cofunctor; it takes an object and a morphism to the morphism in .
We now show that this construction due to Ahman and Uustalu is universal, in the sense that it provides a right adjoint to the functor taking a delta lens to its underlying cofunctor.
Lemma 8.
The forgetful functor has a right adjoint.
Proof.
Using the construction in (7), define the functor by the assignment:
(8) |
We describe the components of the unit and counit for the adjunction and omit the detailed checks that the triangle identities hold.
Given a cofunctor the component of the counit is given by:
(9) |
Given a delta lens the component of the unit is given by:
(10) |
The above diagrams show that the pasting condition required in (5) is satisfied. ∎
Theorem 9.
The forgetful functor is comonadic.
Proof.
By Lemma 8, the functor has a right adjoint . To prove that is comonadic, it remains to show that the category of coalgebras for the induced comonad on is equivalent to .
Given a cofunctor , a coalgebra structure map is given by a morphism in of the form:
(11) |
However compatibility with the counit forces and , where is a functor such that . Compatibility with the comultiplication doesn’t add any further conditions. Therefore, a coalgebra for the comonad on is equivalent to a delta lens . ∎
4. Concluding remarks
In this paper, the category of delta lenses over the base was characterised as the category of coalgebras for a comonad on the category of cofunctors over the base . This brings together recent results in the study of delta lenses and cofunctors. In particular, we have shown that the extra structure on cofunctors given in Ahman and Uustalu’s [4] characterisation of delta lenses is coalgebraic, and that their construction of a delta lens from cofunctor in the paper [3] is precisely the cofree delta lens on a cofunctor. Throughout we have also shown how the abstract diagrammatic approach to delta lenses, first introduced in [5], has led to concise proofs of these results, and offers a clear perspective on the relationship between these ideas.
Aside from clarification and development of theory, the results presented in this paper have several other mathematical consequences. For example, the functor creates all colimits which exist in . Thus we can take the coproduct of a pair of cofunctors in , and automatically know how to construct the coproduct of the corresponding delta lenses in .
Another consequence from the unit (10) of the adjunction between and is that every delta lens factorises into a bijective-on-objects functor followed by a cofree lens. Intuitively, this allows us to first pair every transition in the source category with a transition in the view category via the functor part of the delta lens,
then consider the update propagation determined by the cofunctor part of the delta lens. The cofree delta lens on a cofunctor behaves much like an analogue of constant complement state-based lenses, except that the complement is with respect to morphisms rather than objects.
While the main contributions of this paper are mathematical, it is hoped that these results also prompt new ways of understanding delta lenses. For example, previously state-based lenses have been considered from a “Put-based” perspective [17, 8], however this approach could also be adapted to the setting of delta lenses. Rather than starting with a Get functor between systems and then asking how we might construct a delta lens, we might instead start with a Put cofunctor and then ask for ways in which this can be given the structure of a delta lens. This shift of focus is subtle but important, especially in the context of the ideas in [4], as it is arguably the Put structure (rather than the Get structure) which is central to the study of bidirectional transformations and lenses.
On an separate note, it is worth remarking on the similarity between the main result of this paper and the classical result stating that very well-behaved lenses are coalgebras for a comonad [16, 10]. Despite the clear analogy between them, and the inspiration that this paper derives from the classical result, it seems that they are unrelated at a mathematical level. The classical result relies on being a cartesian closed category, and arises from the adjunction , whereas the results in this paper arise from a different adjunction, and don’t require any aspect of cartesian closure.
There are many questions to be explored in future work. For instance, it is natural to ask if is comonadic over other categories (such as as was suggested by an anonymous reviewer), or if split opfibrations (also known as c-lenses [15]) are also comonadic over . In recent work by the current author, it has been demonstrated that delta lenses arise as algebras for a monad on , providing a dual to the main result of this paper and strengthening the previous work of Johnson and Rosebrugh [12]. Finally, given the importance of the category in the study of symmetric lenses [13, 6], it is also hoped that the coalgebraic perspective provides new insights into this area, and this will be the subject of further investigation.
Acknowledgements
The author would like to thank Michael Johnson for his feedback on this work, the anonymous reviewers of this paper for their helpful comments, and the audience of the Bx2021 workshop for their insightful questions. The author also thanks Eli Hazel and Giacomo Tendas for their suggestions which improved the final version of this paper. The author is grateful for the support of the Australian Government Research Training Program Scholarship.
References
- [1] Marcelo Aguiar. Internal Categories and Quantum Groups. PhD thesis, Cornell University, August 1997.
- [2] Danel Ahman, James Chapman, and Tarmo Uustalu. When is a container a comonad? Logical Methods in Computer Science, 10:1–48, 2014.
- [3] Danel Ahman and Tarmo Uustalu. Directed containers as categories. In Proceedings 6th Workshop on Mathematically Structured Functional Programming, volume 207 of Electronic Proceedings in Theoretical Computer Science, pages 89–98, 2016.
- [4] Danel Ahman and Tarmo Uustalu. Taking updates seriously. In Proceedings of the 6th International Workshop on Bidirectional Transformations, volume 1827 of CEUR Workshop Proceedings, pages 59–73, 2017.
- [5] Bryce Clarke. Internal lenses as functors and cofunctors. In Applied Category Theory 2019, volume 323 of Electronic Proceedings in Theoretical Computer Science, pages 183–195, 2020.
- [6] Bryce Clarke. A diagrammatic approach to symmetric lenses. In Applied Category Theory Conference 2020, volume 333 of Electronic Proceedings in Theoretical Computer Science, pages 79–91, 2021.
- [7] Zinovy Diskin, Yingfei Xiong, and Krzysztof Czarnecki. From state- to delta-based bidirectional model transformations: the asymmetric case. Journal of Object Technology, 10:1–25, 2011.
- [8] Sebastian Fischer, ZhenJiang Hu, and Hugo Pacheco. The essence of bidirectional programming. Science China Information Sciences, 58:1–21, 2015.
- [9] J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, and Alan Schmitt. Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Transactions on Programming Languages and Systems, 29(3):1–65, 2007.
- [10] Jeremy Gibbons and Michael Johnson. Relating algebraic and coalgebraic descriptions of lenses. In Proceedings of the First International Workshop on Bidirectional Transformations, volume 49 of Electronic Communications of the EASST, pages 1–16, 2012.
- [11] Philip J. Higgins and Kirill C. H. Mackenzie. Duality for base-changing morphisms of vector bundles, modules, Lie algebroids and Poisson structures. Mathematical Proceedings of the Cambridge Philosophical Society, 114:471–488, 1993.
- [12] Michael Johnson and Robert Rosebrugh. Delta lenses and opfibrations. Electronic Communications of the EASST, 57:1–18, 2013.
- [13] Michael Johnson and Robert Rosebrugh. Universal updates for symmetric lenses. In Proceedings of the 6th International Workshop on Bidirectional Transformations, volume 1827 of CEUR Workshop Proceedings, pages 39–53, 2017.
- [14] Michael Johnson, Robert Rosebrugh, and R.J. Wood. Algebras and update strategies. Journal of Universal Computer Science, 16(5):729–748, 2010.
- [15] Michael Johnson, Robert Rosebrugh, and R.J. Wood. Lenses, fibrations and universal translations. Mathematical Structures in Computer Science, 22:25–42, 2012.
- [16] Russell O’Connor. Functor is to lens as applicative is to biplate: Introducing multiplate, 2011.
- [17] Hugo Pacheco, ZhenJiang Hu, and Sebastian Fischer. Monadic combinators for putback style bidirectional programming. In Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation, volume 333 of PEPM ’14, pages 39–50, 2014.
- [18] Ross Street. Fibrations and Yoneda’s lemma in a 2-category. In Category Seminar, volume 420 of Lecture Notes in Mathematics, pages 104–133, 1974.