Related papers: String Diagrams for Optics
Optics, aka functional references, are classes of tools that allow composable access into compound data structures. Usually defined as programming language libraries, they provide combinators to manipulate different shapes of data such as…
This document is an elementary introduction to string diagrams. It takes a computer science perspective: rather than using category theory as a starting point, we build on intuitions from formal language theory, treating string diagrams as…
String diagrams are an increasingly popular algebraic language for the analysis of graphical models of computations across different research fields. Whereas string diagrams have been thoroughly studied as semantic structures, much less…
Lens design uses a calculation of the lens' surfaces that permit to obtain an image from a given object. A set of general rules and laws permits to calculate the essential points of the optical system such as distances, thickness, pupils,…
The elegance and usefulness of a complex formulation of the basic lensing equations is demonstrated with a number of applications. Using standard tools of complex function theory, we present, for instance, a new proof of the fact that the…
This tutorial gives an advanced introduction to string diagrams and graph languages for higher-order computation. The subject matter develops in a principled way, starting from the two dimensional syntax of key categorical concepts such as…
An optical equation for null strings is derived. The equation is similar to Sachs' optical equations for null geodesic congruences. The string optical equation is given in terms of a single complex scalar function $Z$, which is a…
Lenses have a rich history and have recently received a great deal of attention from applied category theorists. We generalize the notion of lens by defining a category $\mathsf{Lens}_F$ for any category $\mathcal{C}$ and functor $F\colon…
Bidirectional transformation, also called lens, has played important roles in maintaining consistency in many fields of applications. A lens is specified by a pair of forward and backward functions which relate to each other in a consistent…
Optics are bidirectional data accessors that capture data transformation patterns such as accessing subfields or iterating over containers. Profunctor optics are a particular choice of representation supporting modularity, meaning that we…
Optics and lenses are abstract categorical gadgets that model systems with bidirectional data flow. In this paper we observe that the denotational definition of optics - identifying two optics as equivalent by observing their behaviour from…
Lenses are a mathematical structure for maintaining consistency between a pair of systems. In their ongoing research program, Johnson and Rosebrugh have sought to unify the treatment of symmetric lenses with spans of asymmetric lenses. This…
String diagrams are a graphical language used to represent processes that can be composed sequentially or in parallel, which correspond graphically to horizontal or vertical juxtaposition. In this paper we demonstrate how to compute the…
A popular graphical calculus for monoidal categories makes computations tactile and intuitive. Complicated diagram chases can be expressed in a few pictures and discovered by playing with a shoelace. Joyal and Street's proof of the…
What are strings made of? The possibility is discussed that strings are purely mathematical objects, made of logical axioms. More precisely, proofs in simple logical calculi are represented by graphs that can be interpreted as the Feynman…
We develop a comprehensive string diagrammatic treatment of electrical circuits. Building on previous, limited case studies, we introduce controlled sources and meters as elements, and the impedance calculus, a powerful toolbox for…
We introduce string diagrams as a formal mathematical, graphical language to represent, compose, program and reason about games. The language is well established in quantum physics, quantum computing and quantum linguistic with the…
A graph is a data structure composed of dots (i.e. vertices) and lines (i.e. edges). The dots and lines of a graph can be organized into intricate arrangements. The ability for a graph to denote objects and their relationships to one…
This paper is a submission to the contest: How to combine logics? at the World Congress and School on Universal Logic III, 2010. We claim that combining "things", whatever these things are, is made easier if these things can be seen as the…
We give parallel algorithms for string diagrams represented as structured cospans of ACSets. Specifically, we give linear (sequential) and logarithmic (parallel) time algorithms for composition, tensor product, construction of diagrams from…