Categories of Coalgebras with Monadic Homomorphisms Wolfram Kahl
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Ambiguity and Incomplete Information in Categorical Models of Language
Ambiguity and Incomplete Information in Categorical Models of Language Dan Marsden University of Oxford [email protected] We investigate notions of ambiguity and partial information in categorical distributional models of natural language. Probabilistic ambiguity has previously been studied in [27, 26, 16] using Selinger’s CPM construction. This construction works well for models built upon vector spaces, as has been shown in quantum computational applications. Unfortunately, it doesn’t seem to provide a satis- factory method for introducing mixing in other compact closed categories such as the category of sets and binary relations. We therefore lack a uniform strategy for extending a category to model imprecise linguistic information. In this work we adopt a different approach. We analyze different forms of ambiguous and in- complete information, both with and without quantitative probabilistic data. Each scheme then cor- responds to a suitable enrichment of the category in which we model language. We view different monads as encapsulating the informational behaviour of interest, by analogy with their use in mod- elling side effects in computation. Previous results of Jacobs then allow us to systematically construct suitable bases for enrichment. We show that we can freely enrich arbitrary dagger compact closed categories in order to capture all the phenomena of interest, whilst retaining the important dagger compact closed structure. This allows us to construct a model with real convex combination of binary relations that makes non-trivial use of the scalars. Finally we relate our various different enrichments, showing that finite subconvex algebra enrichment covers all the effects under consideration. -
EM-Training for Weighted Aligned Hypergraph Bimorphisms
EM-Training for Weighted Aligned Hypergraph Bimorphisms Frank Drewes Kilian Gebhardt and Heiko Vogler Department of Computing Science Department of Computer Science Umea˚ University Technische Universitat¨ Dresden S-901 87 Umea,˚ Sweden D-01062 Dresden, Germany [email protected] [email protected] [email protected] Abstract malized by the new concept of hybrid grammar. Much as in the mentioned synchronous grammars, We develop the concept of weighted a hybrid grammar synchronizes the derivations aligned hypergraph bimorphism where the of nonterminals of a string grammar, e.g., a lin- weights may, in particular, represent proba- ear context-free rewriting system (LCFRS) (Vijay- bilities. Such a bimorphism consists of an Shanker et al., 1987), and of nonterminals of a R 0-weighted regular tree grammar, two ≥ tree grammar, e.g., regular tree grammar (Brainerd, hypergraph algebras that interpret the gen- 1969) or simple definite-clause programs (sDCP) erated trees, and a family of alignments (Deransart and Małuszynski, 1985). Additionally it between the two interpretations. Seman- synchronizes terminal symbols, thereby establish- tically, this yields a set of bihypergraphs ing an explicit alignment between the positions of each consisting of two hypergraphs and the string and the nodes of the tree. We note that an explicit alignment between them; e.g., LCFRS/sDCP hybrid grammars can also generate discontinuous phrase structures and non- non-projective dependency structures. projective dependency structures are bihy- In this paper we focus on the task of training an pergraphs. We present an EM-training al- LCFRS/sDCP hybrid grammar, that is, assigning gorithm which takes a corpus of bihyper- probabilities to its rules given a corpus of discon- graphs and an aligned hypergraph bimor- tinuous phrase structures or non-projective depen- phism as input and generates a sequence dency structures. -
Lecture 10. Functors and Monads Functional Programming
Lecture 10. Functors and monads Functional Programming [Faculty of Science Information and Computing Sciences] 0 Goals I Understand the concept of higher-kinded abstraction I Introduce two common patterns: functors and monads I Simplify code with monads Chapter 12 from Hutton’s book, except 12.2 [Faculty of Science Information and Computing Sciences] 1 Functors [Faculty of Science Information and Computing Sciences] 2 Map over lists map f xs applies f over all the elements of the list xs map :: (a -> b) -> [a] -> [b] map _ [] = [] map f (x:xs) = f x : map f xs > map (+1)[1,2,3] [2,3,4] > map even [1,2,3] [False,True,False] [Faculty of Science Information and Computing Sciences] 3 mapTree _ Leaf = Leaf mapTree f (Node l x r) = Node (mapTree f l) (f x) (mapTree f r) Map over binary trees Remember binary trees with data in the inner nodes: data Tree a = Leaf | Node (Tree a) a (Tree a) deriving Show They admit a similar map operation: mapTree :: (a -> b) -> Tree a -> Tree b [Faculty of Science Information and Computing Sciences] 4 Map over binary trees Remember binary trees with data in the inner nodes: data Tree a = Leaf | Node (Tree a) a (Tree a) deriving Show They admit a similar map operation: mapTree :: (a -> b) -> Tree a -> Tree b mapTree _ Leaf = Leaf mapTree f (Node l x r) = Node (mapTree f l) (f x) (mapTree f r) [Faculty of Science Information and Computing Sciences] 4 Map over binary trees mapTree also applies a function over all elements, but now contained in a binary tree > t = Node (Node Leaf 1 Leaf) 2 Leaf > mapTree (+1) t Node -
Domain Theory and the Logic of Observable Properties
Domain Theory and the Logic of Observable Properties Samson Abramsky Submitted for the degree of Doctor of Philosophy Queen Mary College University of London October 31st 1987 Abstract The mathematical framework of Stone duality is used to synthesize a number of hitherto separate developments in Theoretical Computer Science: • Domain Theory, the mathematical theory of computation introduced by Scott as a foundation for denotational semantics. • The theory of concurrency and systems behaviour developed by Milner, Hennessy et al. based on operational semantics. • Logics of programs. Stone duality provides a junction between semantics (spaces of points = denotations of computational processes) and logics (lattices of properties of processes). Moreover, the underlying logic is geometric, which can be com- putationally interpreted as the logic of observable properties—i.e. properties which can be determined to hold of a process on the basis of a finite amount of information about its execution. These ideas lead to the following programme: 1. A metalanguage is introduced, comprising • types = universes of discourse for various computational situa- tions. • terms = programs = syntactic intensions for models or points. 2. A standard denotational interpretation of the metalanguage is given, assigning domains to types and domain elements to terms. 3. The metalanguage is also given a logical interpretation, in which types are interpreted as propositional theories and terms are interpreted via a program logic, which axiomatizes the properties they satisfy. 2 4. The two interpretations are related by showing that they are Stone duals of each other. Hence, semantics and logic are guaranteed to be in harmony with each other, and in fact each determines the other up to isomorphism. -
Algebraic Implementation of Abstract Data Types*
Theoretical Computer Science 20 (1982) 209-263 209 North-Holland Publishing Company ALGEBRAIC IMPLEMENTATION OF ABSTRACT DATA TYPES* H. EHRIG, H.-J. KREOWSKI, B. MAHR and P. PADAWITZ Fachbereich Informatik, TV Berlin, 1000 Berlin 10, Fed. Rep. Germany Communicated by M. Nivat Received October 1981 Abstract. Starting with a review of the theory of algebraic specifications in the sense of the ADJ-group a new theory for algebraic implementations of abstract data types is presented. While main concepts of this new theory were given already at several conferences this paper provides the full theory of algebraic implementations developed in Berlin except of complexity considerations which are given in a separate paper. The new concept of algebraic implementations includes implementations for algorithms in specific programming languages and on the other hand it meets also the requirements for stepwise refinement of structured programs and software systems as introduced by Dijkstra and Wirth. On the syntactical level an algebraic implementation corresponds to a system of recursive programs while the semantical level is defined by algebraic constructions, called SYNTHESIS, RESTRICTION and IDENTIFICATION. Moreover the concept allows composition of implementations and a rigorous study of correctness. The main results of the paper are different kinds of correctness criteria which are applied to a number of illustrating examples including the implementation of sets by hash-tables. Algebraic implementations of larger systems like a histogram or a parts system are given in separate case studies which, however, are not included in this paper. 1. Introduction The concept of abstract data types was developed since about ten years starting with the debacles of large software systems in the late 60's. -
1. Language of Operads 2. Operads As Monads
OPERADS, APPROXIMATION, AND RECOGNITION MAXIMILIEN PEROUX´ All missing details can be found in [May72]. 1. Language of operads Let S = (S; ⊗; I) be a (closed) symmetric monoidal category. Definition 1.1. An operad O in S is a collection of object fO(j)gj≥0 in S endowed with : • a right-action of the symmetric group Σj on O(j) for each j, such that O(0) = I; • a unit map I ! O(1) in S; • composition operations that are morphisms in S : γ : O(k) ⊗ O(j1) ⊗ · · · ⊗ O(jk) −! O(j1 + ··· + jk); defined for each k ≥ 0, j1; : : : ; jk ≥ 0, satisfying natural equivariance, unit and associativity relations. 0 0 A morphism of operads : O ! O is a sequence j : O(j) ! O (j) of Σj-equivariant morphisms in S compatible with the unit map and γ. Example 1.2. ⊗j Let X be an object in S. The endomorphism operad EndX is defined to be EndX (j) = HomS(X ;X), ⊗j with unit idX , and the Σj-right action is induced by permuting on X . Example 1.3. Define Assoc(j) = ` , the associative operad, where the maps γ are defined by equivariance. Let σ2Σj I Com(j) = I, the commutative operad, where γ are the canonical isomorphisms. Definition 1.4. Let O be an operad in S. An O-algebra (X; θ) in S is an object X together with a morphism of operads ⊗j θ : O ! EndX . Using adjoints, this is equivalent to a sequence of maps θj : O(j) ⊗ X ! X such that they are associative, unital and equivariant. -
Algebraic Structures Lecture 18 Thursday, April 4, 2019 1 Type
Harvard School of Engineering and Applied Sciences — CS 152: Programming Languages Algebraic structures Lecture 18 Thursday, April 4, 2019 In abstract algebra, algebraic structures are defined by a set of elements and operations on those ele- ments that satisfy certain laws. Some of these algebraic structures have interesting and useful computa- tional interpretations. In this lecture we will consider several algebraic structures (monoids, functors, and monads), and consider the computational patterns that these algebraic structures capture. We will look at Haskell, a functional programming language named after Haskell Curry, which provides support for defin- ing and using such algebraic structures. Indeed, monads are central to practical programming in Haskell. First, however, we consider type constructors, and see two new type constructors. 1 Type constructors A type constructor allows us to create new types from existing types. We have already seen several different type constructors, including product types, sum types, reference types, and parametric types. The product type constructor × takes existing types τ1 and τ2 and constructs the product type τ1 × τ2 from them. Similarly, the sum type constructor + takes existing types τ1 and τ2 and constructs the product type τ1 + τ2 from them. We will briefly introduce list types and option types as more examples of type constructors. 1.1 Lists A list type τ list is the type of lists with elements of type τ. We write [] for the empty list, and v1 :: v2 for the list that contains value v1 as the first element, and v2 is the rest of the list. We also provide a way to check whether a list is empty (isempty? e) and to get the head and the tail of a list (head e and tail e). -
The Expectation Monad in Quantum Foundations
The Expectation Monad in Quantum Foundations Bart Jacobs and Jorik Mandemaker Institute for Computing and Information Sciences (iCIS), Radboud University Nijmegen, The Netherlands. fB.Jacobs,[email protected] The expectation monad is introduced abstractly via two composable adjunctions, but concretely cap- tures measures. It turns out to sit in between known monads: on the one hand the distribution and ultrafilter monad, and on the other hand the continuation monad. This expectation monad is used in two probabilistic analogues of fundamental results of Manes and Gelfand for the ultrafilter monad: algebras of the expectation monad are convex compact Hausdorff spaces, and are dually equivalent to so-called Banach effect algebras. These structures capture states and effects in quantum foundations, and the duality between them. Moreover, the approach leads to a new re-formulation of Gleason’s theorem, expressing that effects on a Hilbert space are free effect modules on projections, obtained via tensoring with the unit interval. 1 Introduction Techniques that have been developed over the last decades for the semantics of programming languages and programming logics gain wider significance. In this way a new interdisciplinary area has emerged where researchers from mathematics, (theoretical) physics and (theoretical) computer science collabo- rate, notably on quantum computation and quantum foundations. The article [6] uses the phrase “Rosetta Stone” for the language and concepts of category theory that form an integral part of this common area. The present article is also part of this new field. It uses results from programming semantics, topology and (convex) analysis, category theory (esp. monads), logic and probability, and quantum foundations. -
Abstraction and Abstraction Refinement in the Verification Of
Abstraction and Abstraction Refinement in the Verification of Graph Transformation Systems Vom Fachbereich Ingenieurwissenschaften Abteilung Informatik und angewandte Kognitionswissenschaft der Unversit¨at Duisburg-Essen zur Erlangung des akademischen Grades eines Doktor der Naturwissenschaften (Dr.-rer. nat.) genehmigte Dissertation von Vitaly Kozyura aus Magadan, Russland Referent: Prof. Dr. Barbara K¨onig Korreferent: Prof. Dr. Arend Rensink Tag der m¨undlichen Pr¨ufung: 05.08.2009 Abstract Graph transformation systems (GTSs) form a natural and convenient specification language which is used for modelling concurrent and distributed systems with dynamic topologies. These can be, for example, network and Internet protocols, mobile processes with dynamic behavior and dynamic pointer structures in programming languages. All this, together with the possibility to visualize and explain system behavior using graphical methods, makes GTSs a well-suited formalism for the specification of complex dynamic distributed systems. Under these circumstances the problem of checking whether a certain property of GTSs holds – the verification problem – is considered to be a very important question. Unfortunately the verification of GTSs is in general undecidable because of the Turing- completeness of GTSs. In the last few years a technique for analysing GTSs based on approximation by Petri graphs has been developed. Petri graphs are Petri nets having additional graph structure. In this work we focus on the verification techniques based on counterexample-guided abstraction refinement (CEGAR approach). It starts with a coarse initial over-approxi- mation of a system and an obtained counterexample. If the counterexample is spurious then one starts a refinement procedure of the approximation, based on the structure of the counterexample. -
Beck's Theorem Characterizing Algebras
BECK'S THEOREM CHARACTERIZING ALGEBRAS SOFI GJING JOVANOVSKA Abstract. In this paper, I will construct a proof of Beck's Theorem char- acterizing T -algebras. Suppose we have an adjoint pair of functors F and G between categories C and D. It determines a monad T on C. We can associate a T -algebra to the monad, and Beck's Theorem demonstrates when the catego- ry of T -algebras is equivalent to the category D. We will arrive at this result by rst de ning categories, and a few relevant concepts and theorems that will be useful for proving our result; these will include natural tranformations, adjoints, monads and more. Contents 1. Introduction 1 2. Categories 2 3. Adjoints 4 3.1. Isomorphisms and Natural Transformations 4 3.2. Adjoints 5 3.3. Triangle Identities 5 4. Monads and Algebras 7 4.1. Monads and Adjoints 7 4.2. Algebras for a monad 8 4.3. The Comparison with Algebras 9 4.4. Coequalizers 11 4.5. Beck's Threorem 12 Acknowledgments 15 References 15 1. Introduction Beck's Theorem characterizing algebras is one direction of Beck's Monadicity Theorem. Beck's Monadicity Theorem is most useful in studying adjoint pairs of functors. Adjunction is a type of relation between two functors that has some very important properties, such as preservation of limits or colimits, which, unfortunate- ly, we will not touch upon in this paper. However, we need to know that it is indeed a topic of interest, and therefore worth studying. Here, we state Beck's Monadicity Theorem. -
Monads and Side Effects in Haskell
Monads and Side Effects in Haskell Alan Davidson October 2, 2013 In this document, I will attempt to explain in simple terms what monads are, how they work, and how they are used to perform side effects in the Haskell programming language. I assume you already have some familiarity with Haskell syntax. I will start from relatively simple, familiar ideas, and work my way up to our actual goals. In particular, I will start by discussing functors, then applicative functors, then monads, and finally how to have side effects in Haskell. I will finish up by discussing the functor and monad laws, and resources to learn more details. 1 Functors A functor is basically a data structure that can be mapped over: class Functor f where fmap :: (a -> b) -> f a -> f b This is to say, fmap takes a function that takes an a and returns a b, and a data structure full of a’s, and it returns a data structure with the same format but with every piece of data replaced with the result of running it through that function. Example 1. Lists are functors. instance Functor [] where fmap _ [] = [] fmap f (x : xs) = (f x) : (fmap f xs) We could also have simply made fmap equal to map, but that would hide the implemen- tation, and this example is supposed to illustrate how it all works. Example 2. Binary trees are functors. data BinaryTree t = Empty | Node t (BinaryTree t) (BinaryTree t) instance Functor BinaryTree where fmap _ Empty = Empty fmap f (Node x left right) = Node (f x) (fmap f left) (fmap f right) 1 Note that these are not necessarily binary search trees; the elements in a tree returned from fmap are not guaranteed to be in sorted order (indeed, they’re not even guaranteed to hold sortable data). -
1 Category Theory
{-# LANGUAGE RankNTypes #-} module AbstractNonsense where import Control.Monad 1 Category theory Definition 1. A category consists of • a collection of objects • and a collection of morphisms between those objects. We write f : A → B for the morphism f connecting the object A to B. • Morphisms are closed under composition, i.e. for morphisms f : A → B and g : B → C there exists the composed morphism h = f ◦ g : A → C1. Furthermore we require that • Composition is associative, i.e. f ◦ (g ◦ h) = (f ◦ g) ◦ h • and for each object A there exists an identity morphism idA such that for all morphisms f : A → B: f ◦ idB = idA ◦ f = f Many mathematical structures form catgeories and thus the theorems and con- structions of category theory apply to them. As an example consider the cate- gories • Set whose objects are sets and morphisms are functions between those sets. • Grp whose objects are groups and morphisms are group homomorphisms, i.e. structure preserving functions, between those groups. 1.1 Functors Category theory is mainly interested in relationships between different kinds of mathematical structures. Therefore the fundamental notion of a functor is introduced: 1The order of the composition is to be read from left to right in contrast to standard mathematical notation. 1 Definition 2. A functor F : C → D is a transformation between categories C and D. It is defined by its action on objects F (A) and morphisms F (f) and has to preserve the categorical structure, i.e. for any morphism f : A → B: F (f(A)) = F (f)(F (A)) which can also be stated graphically as the commutativity of the following dia- gram: F (f) F (A) F (B) f A B Alternatively we can state that functors preserve the categorical structure by the requirement to respect the composition of morphisms: F (idC) = idD F (f) ◦ F (g) = F (f ◦ g) 1.2 Natural transformations Taking the construction a step further we can ask for transformations between functors.