Cartesian Closed Categories Andrea Schalk · November 16, 2010
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
A Convenient Category for Higher-Order Probability Theory
A Convenient Category for Higher-Order Probability Theory Chris Heunen Ohad Kammar Sam Staton Hongseok Yang University of Edinburgh, UK University of Oxford, UK University of Oxford, UK University of Oxford, UK Abstract—Higher-order probabilistic programming languages 1 (defquery Bayesian-linear-regression allow programmers to write sophisticated models in machine 2 let let sample normal learning and statistics in a succinct and structured way, but step ( [f ( [s ( ( 0.0 3.0)) 3 sample normal outside the standard measure-theoretic formalization of proba- b ( ( 0.0 3.0))] 4 fn + * bility theory. Programs may use both higher-order functions and ( [x] ( ( s x) b)))] continuous distributions, or even define a probability distribution 5 (observe (normal (f 1.0) 0.5) 2.5) on functions. But standard probability theory does not handle 6 (observe (normal (f 2.0) 0.5) 3.8) higher-order functions well: the category of measurable spaces 7 (observe (normal (f 3.0) 0.5) 4.5) is not cartesian closed. 8 (observe (normal (f 4.0) 0.5) 6.2) Here we introduce quasi-Borel spaces. We show that these 9 (observe (normal (f 5.0) 0.5) 8.0) spaces: form a new formalization of probability theory replacing 10 (predict :f f))) measurable spaces; form a cartesian closed category and so support higher-order functions; form a well-pointed category and so support good proof principles for equational reasoning; and support continuous probability distributions. We demonstrate the use of quasi-Borel spaces for higher-order functions and proba- bility by: showing that a well-known construction of probability theory involving random functions gains a cleaner expression; and generalizing de Finetti’s theorem, that is a crucial theorem in probability theory, to quasi-Borel spaces. -
Functional Languages
Functional Programming Languages (FPL) 1. Definitions................................................................... 2 2. Applications ................................................................ 2 3. Examples..................................................................... 3 4. FPL Characteristics:.................................................... 3 5. Lambda calculus (LC)................................................. 4 6. Functions in FPLs ....................................................... 7 7. Modern functional languages...................................... 9 8. Scheme overview...................................................... 11 8.1. Get your own Scheme from MIT...................... 11 8.2. General overview.............................................. 11 8.3. Data Typing ...................................................... 12 8.4. Comments ......................................................... 12 8.5. Recursion Instead of Iteration........................... 13 8.6. Evaluation ......................................................... 14 8.7. Storing and using Scheme code ........................ 14 8.8. Variables ........................................................... 15 8.9. Data types.......................................................... 16 8.10. Arithmetic functions ......................................... 17 8.11. Selection functions............................................ 18 8.12. Iteration............................................................. 23 8.13. Defining functions ........................................... -
Category Theory for Autonomous and Networked Dynamical Systems
Discussion Category Theory for Autonomous and Networked Dynamical Systems Jean-Charles Delvenne Institute of Information and Communication Technologies, Electronics and Applied Mathematics (ICTEAM) and Center for Operations Research and Econometrics (CORE), Université catholique de Louvain, 1348 Louvain-la-Neuve, Belgium; [email protected] Received: 7 February 2019; Accepted: 18 March 2019; Published: 20 March 2019 Abstract: In this discussion paper we argue that category theory may play a useful role in formulating, and perhaps proving, results in ergodic theory, topogical dynamics and open systems theory (control theory). As examples, we show how to characterize Kolmogorov–Sinai, Shannon entropy and topological entropy as the unique functors to the nonnegative reals satisfying some natural conditions. We also provide a purely categorical proof of the existence of the maximal equicontinuous factor in topological dynamics. We then show how to define open systems (that can interact with their environment), interconnect them, and define control problems for them in a unified way. Keywords: ergodic theory; topological dynamics; control theory 1. Introduction The theory of autonomous dynamical systems has developed in different flavours according to which structure is assumed on the state space—with topological dynamics (studying continuous maps on topological spaces) and ergodic theory (studying probability measures invariant under the map) as two prominent examples. These theories have followed parallel tracks and built multiple bridges. For example, both have grown successful tools from the interaction with information theory soon after its emergence, around the key invariants, namely the topological entropy and metric entropy, which are themselves linked by a variational theorem. The situation is more complex and heterogeneous in the field of what we here call open dynamical systems, or controlled dynamical systems. -
Nearly Locally Presentable Categories Are Locally Presentable Is Equivalent to Vopˇenka’S Principle
NEARLY LOCALLY PRESENTABLE CATEGORIES L. POSITSELSKI AND J. ROSICKY´ Abstract. We introduce a new class of categories generalizing locally presentable ones. The distinction does not manifest in the abelian case and, assuming Vopˇenka’s principle, the same happens in the regular case. The category of complete partial orders is the natural example of a nearly locally finitely presentable category which is not locally presentable. 1. Introduction Locally presentable categories were introduced by P. Gabriel and F. Ulmer in [6]. A category K is locally λ-presentable if it is cocomplete and has a strong generator consisting of λ-presentable objects. Here, λ is a regular cardinal and an object A is λ-presentable if its hom-functor K(A, −): K → Set preserves λ-directed colimits. A category is locally presentable if it is locally λ-presentable for some λ. This con- cept of presentability formalizes the usual practice – for instance, finitely presentable groups are precisely groups given by finitely many generators and finitely many re- lations. Locally presentable categories have many nice properties, in particular they are complete and co-wellpowered. Gabriel and Ulmer [6] also showed that one can define locally presentable categories by using just monomorphisms instead all morphisms. They defined λ-generated ob- jects as those whose hom-functor K(A, −) preserves λ-directed colimits of monomor- phisms. Again, this concept formalizes the usual practice – finitely generated groups are precisely groups admitting a finite set of generators. This leads to locally gener- ated categories, where a cocomplete category K is locally λ-generated if it has a strong arXiv:1710.10476v2 [math.CT] 2 Apr 2018 generator consisting of λ-generated objects and every object of K has only a set of strong quotients. -
AN INTRODUCTION to CATEGORY THEORY and the YONEDA LEMMA Contents Introduction 1 1. Categories 2 2. Functors 3 3. Natural Transfo
AN INTRODUCTION TO CATEGORY THEORY AND THE YONEDA LEMMA SHU-NAN JUSTIN CHANG Abstract. We begin this introduction to category theory with definitions of categories, functors, and natural transformations. We provide many examples of each construct and discuss interesting relations between them. We proceed to prove the Yoneda Lemma, a central concept in category theory, and motivate its significance. We conclude with some results and applications of the Yoneda Lemma. Contents Introduction 1 1. Categories 2 2. Functors 3 3. Natural Transformations 6 4. The Yoneda Lemma 9 5. Corollaries and Applications 10 Acknowledgments 12 References 13 Introduction Category theory is an interdisciplinary field of mathematics which takes on a new perspective to understanding mathematical phenomena. Unlike most other branches of mathematics, category theory is rather uninterested in the objects be- ing considered themselves. Instead, it focuses on the relations between objects of the same type and objects of different types. Its abstract and broad nature allows it to reach into and connect several different branches of mathematics: algebra, geometry, topology, analysis, etc. A central theme of category theory is abstraction, understanding objects by gen- eralizing rather than focusing on them individually. Similar to taxonomy, category theory offers a way for mathematical concepts to be abstracted and unified. What makes category theory more than just an organizational system, however, is its abil- ity to generate information about these abstract objects by studying their relations to each other. This ability comes from what Emily Riehl calls \arguably the most important result in category theory"[4], the Yoneda Lemma. The Yoneda Lemma allows us to formally define an object by its relations to other objects, which is central to the relation-oriented perspective taken by category theory. -
Basic Category Theory and Topos Theory
Basic Category Theory and Topos Theory Jaap van Oosten Jaap van Oosten Department of Mathematics Utrecht University The Netherlands Revised, February 2016 Contents 1 Categories and Functors 1 1.1 Definitions and examples . 1 1.2 Some special objects and arrows . 5 2 Natural transformations 8 2.1 The Yoneda lemma . 8 2.2 Examples of natural transformations . 11 2.3 Equivalence of categories; an example . 13 3 (Co)cones and (Co)limits 16 3.1 Limits . 16 3.2 Limits by products and equalizers . 23 3.3 Complete Categories . 24 3.4 Colimits . 25 4 A little piece of categorical logic 28 4.1 Regular categories and subobjects . 28 4.2 The logic of regular categories . 34 4.3 The language L(C) and theory T (C) associated to a regular cat- egory C ................................ 39 4.4 The category C(T ) associated to a theory T : Completeness Theorem 41 4.5 Example of a regular category . 44 5 Adjunctions 47 5.1 Adjoint functors . 47 5.2 Expressing (co)completeness by existence of adjoints; preserva- tion of (co)limits by adjoint functors . 52 6 Monads and Algebras 56 6.1 Algebras for a monad . 57 6.2 T -Algebras at least as complete as D . 61 6.3 The Kleisli category of a monad . 62 7 Cartesian closed categories and the λ-calculus 64 7.1 Cartesian closed categories (ccc's); examples and basic facts . 64 7.2 Typed λ-calculus and cartesian closed categories . 68 7.3 Representation of primitive recursive functions in ccc's with nat- ural numbers object . -
(Pdf) of from Push/Enter to Eval/Apply by Program Transformation
From Push/Enter to Eval/Apply by Program Transformation MaciejPir´og JeremyGibbons Department of Computer Science University of Oxford [email protected] [email protected] Push/enter and eval/apply are two calling conventions used in implementations of functional lan- guages. In this paper, we explore the following observation: when considering functions with mul- tiple arguments, the stack under the push/enter and eval/apply conventions behaves similarly to two particular implementations of the list datatype: the regular cons-list and a form of lists with lazy concatenation respectively. Along the lines of Danvy et al.’s functional correspondence between def- initional interpreters and abstract machines, we use this observation to transform an abstract machine that implements push/enter into an abstract machine that implements eval/apply. We show that our method is flexible enough to transform the push/enter Spineless Tagless G-machine (which is the semantic core of the GHC Haskell compiler) into its eval/apply variant. 1 Introduction There are two standard calling conventions used to efficiently compile curried multi-argument functions in higher-order languages: push/enter (PE) and eval/apply (EA). With the PE convention, the caller pushes the arguments on the stack, and jumps to the function body. It is the responsibility of the function to find its arguments, when they are needed, on the stack. With the EA convention, the caller first evaluates the function to a normal form, from which it can read the number and kinds of arguments the function expects, and then it calls the function body with the right arguments. -
SHORT INTRODUCTION to ENRICHED CATEGORIES FRANCIS BORCEUX and ISAR STUBBE Département De Mathématique, Université Catholique
SHORT INTRODUCTION TO ENRICHED CATEGORIES FRANCIS BORCEUX and ISAR STUBBE Departement de Mathematique, Universite Catholique de Louvain, 2 Ch. du Cyclotron, B-1348 Louvain-la-Neuve, Belgium. e-mail: [email protected] — [email protected] This text aims to be a short introduction to some of the basic notions in ordinary and enriched category theory. With reasonable detail but always in a compact fashion, we have brought together in the rst part of this paper the denitions and basic properties of such notions as limit and colimit constructions in a category, adjoint functors between categories, equivalences and monads. In the second part we pass on to enriched category theory: it is explained how one can “replace” the category of sets and mappings, which plays a crucial role in ordinary category theory, by a more general symmetric monoidal closed category, and how most results of ordinary category theory can be translated to this more general setting. For a lack of space we had to omit detailed proofs, but instead we have included lots of examples which we hope will be helpful. In any case, the interested reader will nd his way to the references, given at the end of the paper. 1. Ordinary categories When working with vector spaces over a eld K, one proves such theorems as: for all vector spaces there exists a base; every vector space V is canonically included in its bidual V ; every linear map between nite dimensional based vector spaces can be represented as a matrix; and so on. But where do the universal quantiers take their value? What precisely does “canonical” mean? How can we formally “compare” vector spaces with matrices? What is so special about vector spaces that they can be based? An answer to these questions, and many more, can be formulated in a very precise way using the language of category theory. -
Friday September 20 Lecture Notes
Friday September 20 Lecture Notes 1 Functors Definition Let C and D be categories. A functor (or covariant) F is a function that assigns each C 2 Obj(C) an object F (C) 2 Obj(D) and to each f : A ! B in C, a morphism F (f): F (A) ! F (B) in D, satisfying: For all A 2 Obj(C), F (1A) = 1FA. Whenever fg is defined, F (fg) = F (f)F (g). e.g. If C is a category, then there exists an identity functor 1C s.t. 1C(C) = C for C 2 Obj(C) and for every morphism f of C, 1C(f) = f. For any category from universal algebra we have \forgetful" functors. e.g. Take F : Grp ! Cat of monoids (·; 1). Then F (G) is a group viewed as a monoid and F (f) is a group homomorphism f viewed as a monoid homomor- phism. e.g. If C is any universal algebra category, then F : C! Sets F (C) is the underlying sets of C F (f) is a morphism e.g. Let C be a category. Take A 2 Obj(C). Then if we define a covariant Hom functor, Hom(A; ): C! Sets, defined by Hom(A; )(B) = Hom(A; B) for all B 2 Obj(C) and f : B ! C, then Hom(A; )(f) : Hom(A; B) ! Hom(A; C) with g 7! fg (we denote Hom(A; ) by f∗). Let us check if f∗ is a functor: Take B 2 Obj(C). Then Hom(A; )(1B) = (1B)∗ : Hom(A; B) ! Hom(A; B) and for g 2 Hom(A; B), (1B)∗(g) = 1Bg = g. -
Making a Faster Curry with Extensional Types
Making a Faster Curry with Extensional Types Paul Downen Simon Peyton Jones Zachary Sullivan Microsoft Research Zena M. Ariola Cambridge, UK University of Oregon [email protected] Eugene, Oregon, USA [email protected] [email protected] [email protected] Abstract 1 Introduction Curried functions apparently take one argument at a time, Consider these two function definitions: which is slow. So optimizing compilers for higher-order lan- guages invariably have some mechanism for working around f1 = λx: let z = h x x in λy:e y z currying by passing several arguments at once, as many as f = λx:λy: let z = h x x in e y z the function can handle, which is known as its arity. But 2 such mechanisms are often ad-hoc, and do not work at all in higher-order functions. We show how extensional, call- It is highly desirable for an optimizing compiler to η ex- by-name functions have the correct behavior for directly pand f1 into f2. The function f1 takes only a single argu- expressing the arity of curried functions. And these exten- ment before returning a heap-allocated function closure; sional functions can stand side-by-side with functions native then that closure must subsequently be called by passing the to practical programming languages, which do not use call- second argument. In contrast, f2 can take both arguments by-name evaluation. Integrating call-by-name with other at once, without constructing an intermediate closure, and evaluation strategies in the same intermediate language ex- this can make a huge difference to run-time performance in presses the arity of a function in its type and gives a princi- practice [Marlow and Peyton Jones 2004]. -
Adjoint and Representable Functors
What underlies dual-process cognition? Adjoint and representable functors Steven Phillips ([email protected]) Mathematical Neuroinformatics Group, Human Informatics Research Institute, National Institute of Advanced Industrial Science and Technology (AIST), Tsukuba, Ibaraki 305-8566 JAPAN Abstract & Stanovich, 2013, for the model and responses to the five criticisms). According to this model, cognition defaults to Despite a general recognition that there are two styles of think- ing: fast, reflexive and relatively effortless (Type 1) versus slow, Type 1 processes that can be intervened upon by Type 2 pro- reflective and effortful (Type 2), dual-process theories of cogni- cesses in response to task demands. However, this model is tion remain controversial, in particular, for their vagueness. To still far from the kinds of formal, computational explanations address this lack of formal precision, we take a mathematical category theory approach towards understanding what under- that prevail in cognitive science. lies the relationship between dual cognitive processes. From our category theory perspective, we show that distinguishing ID Criticism of dual-process theories features of Type 1 versus Type 2 processes are exhibited via adjoint and representable functors. These results suggest that C1 Theories are multitudinous and definitions vague category theory provides a useful formal framework for devel- C2 Type 1/2 distinctions do not reliably align oping dual-process theories of cognition. C3 Cognitive styles vary continuously, not discretely Keywords: dual-process; Type 1; Type 2; category theory; C4 Single-process theories provide better explanations category; functor; natural transformation; adjoint C5 Evidence for dual-processing is unconvincing Introduction Table 2: Five criticisms of dual-process theories (Evans & Intuitively, at least, human cognition involves two starkly dif- Stanovich, 2013). -
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.