Inductive Types for Free

Size: px
Start display at page:

Download "Inductive Types for Free"

Transcription

1 Inductive Types for Free Representing Nested Inductive Types using W-types Michael Abbott (U. Leicester) Thorsten Altenkirch (U. Nottingham) Neil Ghani (U. Leicester) Inductive Types for Free p.1/22

2 Ideology Inductive Types for Free p.2/22

3 Ideology David Turner: Elementary Strong Functional Programming Inductive Types for Free p.2/22

4 Ideology David Turner: Elementary Strong Functional Programming Martin-Löf Type Theory Inductive Types for Free p.2/22

5 Ideology David Turner: Elementary Strong Functional Programming Martin-Löf Type Theory Types = sets, programs = total functions. Inductive Types for Free p.2/22

6 Ideology David Turner: Elementary Strong Functional Programming Martin-Löf Type Theory Types = sets, programs = total functions. Dependent types to avoid accidental partiality (e.g. hd). Inductive Types for Free p.2/22

7 Ideology David Turner: Elementary Strong Functional Programming Martin-Löf Type Theory Types = sets, programs = total functions. Dependent types to avoid accidental partiality (e.g. hd). E.g.: Conor McBride s Epigram system. Inductive Types for Free p.2/22

8 Plan of the talk Inductive and coinductive types. Container types for dummies. Properties of container types. W-types are sufficent for inductive types. Further work and applications Related work Inductive Types for Free p.3/22

9 Inductive and coinductive types Widespread in functional programming (e.g. Haskell) Lam Int Lam Lam Lam Inductive Types for Free p.4/22

10 Inductive and coinductive types Widespread in functional programming (e.g. Haskell) Lam Int Lam Lam Lam Categorically: Initial algebra of a functor Lam Inductive Types for Free p.4/22

11 vs. In a total setting (terminal coalgebras): Inductive Types for Free p.5/22

12 vs. In a total setting (terminal coalgebras): finite lists Inductive Types for Free p.5/22

13 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists Inductive Types for Free p.5/22

14 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists Inductive Types for Free p.5/22

15 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists Inductive Types for Free p.5/22

16 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists Inductive Types for Free p.5/22

17 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists can be nested Inductive Types for Free p.5/22

18 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists can be nested Inductive Types for Free p.5/22

19 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists can be nested Inductive Types for Free p.5/22

20 vs. In a total setting (terminal coalgebras): finite lists potentially infinite lists infinite lists can be nested Inductive Types for Free p.5/22

21 Axiomatically? How do we say? All inductive or coinductive datatypes Inductive Types for Free p.6/22

22 Axiomatically? How do we say? All inductive or coinductive datatypes Not every parametrized type has an initial algebra (or terminal coalgebra) in set theory, e.g. Inductive Types for Free p.6/22

23 Axiomatically? How do we say? All inductive or coinductive datatypes Not every parametrized type has an initial algebra (or terminal coalgebra) in set theory, e.g. Inductive Types for Free p.6/22

24 Axiomatically? How do we say? All inductive or coinductive datatypes Not every parametrized type has an initial algebra (or terminal coalgebra) in set theory, e.g. Inductive Types for Free p.6/22

25 Axiomatically? How do we say? All inductive or coinductive datatypes Not every parametrized type has an initial algebra (or terminal coalgebra) in set theory, e.g. Strictly positive types, e.g. Inductive Types for Free p.6/22

26 Axiomatically? How do we say? All inductive or coinductive datatypes Not every parametrized type has an initial algebra (or terminal coalgebra) in set theory, e.g. Strictly positive types, e.g. ordinal notations Inductive Types for Free p.6/22

27 Axiomatically? How do we say? All inductive or coinductive datatypes Not every parametrized type has an initial algebra (or terminal coalgebra) in set theory, e.g. Strictly positive types, e.g. ordinal notations How do we say? Strictly positive Inductive Types for Free p.6/22

28 Containers and -types Container types are a syntax-free representation of strictly positive types. Inductive Types for Free p.7/22

29 Containers and -types Container types are a syntax-free representation of strictly positive types. In an extensive LCCC: W-types ( ) are sufficent to show that container types are closed under Inductive Types for Free p.7/22

30 Containers and -types Container types are a syntax-free representation of strictly positive types. In an extensive LCCC: W-types ( ) are sufficent to show that container types are closed under (here) Inductive Types for Free p.7/22

31 Containers and -types Container types are a syntax-free representation of strictly positive types. In an extensive LCCC: W-types ( ) are sufficent to show that container types are closed under (here) (journal paper, submitted) Inductive Types for Free p.7/22

32 Containers and -types Container types are a syntax-free representation of strictly positive types. In an extensive LCCC: W-types ( ) are sufficent to show that container types are closed under (here) (journal paper, submitted) Application: Generic Programming e.g. see our work on derivatives of datatypes Inductive Types for Free p.7/22

33 Containers and -types Container types are a syntax-free representation of strictly positive types. In an extensive LCCC: W-types ( ) are sufficent to show that container types are closed under (here) (journal paper, submitted) Application: Generic Programming e.g. see our work on derivatives of datatypes Application: Small trusted cores e.g. for Epigram Inductive Types for Free p.7/22

34 Containers for dummies Inductive Types for Free p.8/22

35 Containers for dummies A container type is given by Inductive Types for Free p.8/22

36 Containers for dummies A container type is given by A collection of shapes {, e.g.,, } Inductive Types for Free p.8/22

37 Containers for dummies A container type is given by A collection of shapes {, e.g.,, An assignment of positions to shapes }, e.g. Inductive Types for Free p.8/22

38 Containers for dummies... We can use a container by Inductive Types for Free p.9/22

39 Containers for dummies... We can use a container by Choosing a shape, e.g. Inductive Types for Free p.9/22

40 Containers for dummies... We can use a container by Choosing a shape, e.g. Filling the positions with payload (here natural numbers), e.g Inductive Types for Free p.9/22

41 Container for scientists Inductive Types for Free p.10/22

42 Container for scientists A container type a set of shapes is given by a family of sets of position, e.g. for any. is a set Inductive Types for Free p.10/22

43 Container for scientists A container type a set of shapes is given by a family of sets of position, e.g. for any. The extension endofunctor is a set of a container is the Inductive Types for Free p.10/22

44 Container for scientists A container type a set of shapes is given by a family of sets of position, e.g. for any. The extension endofunctor is a set of a container is the Straightforward extension to. -ary containers Inductive Types for Free p.10/22

45 Example: Lists Inductive Types for Free p.11/22

46 Inductive Types for Free p.11/22 Example: Lists

47 Inductive Types for Free p.11/22 Example: Lists

48 Inductive Types for Free p.11/22 Example: Lists

49 Morphisms of containers Given containers and a morphism is given by Inductive Types for Free p.12/22

50 Morphisms of containers Given containers and a morphism is given by Inductive Types for Free p.12/22

51 Morphisms of containers Given containers and a morphism is given by its extension is the natural transformation Inductive Types for Free p.12/22

52 Representation theorem Theorem (AAG,FOSSACS 03) The extension functor is full and faithful. Inductive Types for Free p.13/22

53 Representation theorem Theorem (AAG,FOSSACS 03) The extension functor is full and faithful. Consequence: All polymorphic functions (i.e. natural transformations) are given by Inductive Types for Free p.13/22

54 Representation theorem Theorem (AAG,FOSSACS 03) The extension functor is full and faithful. Consequence: All polymorphic functions (i.e. natural transformations) are given by A length transformer, Inductive Types for Free p.13/22

55 Representation theorem Theorem (AAG,FOSSACS 03) The extension functor is full and faithful. Consequence: All polymorphic functions (i.e. natural transformations) are given by A length transformer A where-did-you-come-from function., Inductive Types for Free p.13/22

56 Closure properties Containers are closed under (*) Constant functors, Coproducts ( ) Products ( Constant exponentation Composition of functors ) initial algebras ( ) [ICALP 04] terminal coalgebras ( ) [Journal paper] Inductive Types for Free p.14/22

57 Closure properties Containers are closed under (*) Constant functors, Coproducts ( ) Products ( Constant exponentation Composition of functors ) initial algebras ( ) [ICALP 04] terminal coalgebras ( ) [Journal paper] (*) In any Martin-Löf category = LCCC (locally cartesian closed category) + W-types. Inductive Types for Free p.14/22

58 Coproducts of containers Given containers Inductive Types for Free p.15/22

59 Coproducts of containers Given containers Inductive Types for Free p.15/22

60 Inductive Types for Free p.15/22 Coproducts of containers Given containers

61 Products of containers Given containers Inductive Types for Free p.16/22

62 Products of containers Given containers Inductive Types for Free p.16/22

63 Inductive Types for Free p.16/22 Products of containers Given containers

64 Initial algebras ( ) Given a 2-ary container Inductive Types for Free p.17/22

65 Initial algebras ( ) Given a 2-ary container Inductive Types for Free p.17/22

66 Initial algebras ( ) Given a 2-ary container Inductive Types for Free p.17/22

67 Initial algebras ( ) Given a 2-ary container Inductive Types for Free p.17/22

68 Initial algebras ( ) Given a 2-ary container Inductive Types for Free p.17/22

69 Reply to referee comment... Now, the above is a strictly positive definition so should have a least as well as a greatest solution which are not in general isomorphic. Thus the corollary mentioned in the proof of 4.1 would be wrong and as a result the entire argument collapses. I thus fear that the paper must be rejected;... Inductive Types for Free p.18/22

70 Reply to referee comment... Now, the above is a strictly positive definition so should have a least as well as a greatest solution which are not in general isomorphic. Thus the corollary mentioned in the proof of 4.1 would be wrong and as a result the entire argument collapses. I thus fear that the paper must be rejected;... Reply: Since there are no infinite paths in a finite tree, there is only one solution to this isomorphism, the initial one. This is reflected in the proof of proposition 4.1! Inductive Types for Free p.18/22

71 Constructing the iso Inductive Types for Free p.19/22

72 Inductive Types for Free p.19/22 Constructing the iso

73 Inductive Types for Free p.19/22 Constructing the iso

74 Terminal coalgebras [Journal submiss Inductive Types for Free p.20/22

75 Terminal coalgebras [Journal submiss The same construction works for the -case. Inductive Types for Free p.20/22

76 Terminal coalgebras [Journal submiss The same construction works for the Now we have to show that the solution is initial! -case. Inductive Types for Free p.20/22

77 Terminal coalgebras [Journal submiss The same construction works for the Now we have to show that the solution is initial! We need -types, the dual of -types. -case. Inductive Types for Free p.20/22

78 Terminal coalgebras [Journal submiss The same construction works for the Now we have to show that the solution is initial! We need -types, the dual of -types. However, -types. -case. -types can be constructed from Inductive Types for Free p.20/22

79 Terminal coalgebras [Journal submiss The same construction works for the Now we have to show that the solution is initial! We need -types, the dual of -types. However, -types. -case. -types can be constructed from See: Containers - Constructing Strictly Positive Types on my publication page. Inductive Types for Free p.20/22

80 Further work Quotient containers to model types like bags. First steps, see our MPC paper. Constructing Polymorphic Programs with Quotient Types Dependent containers Work in progress. Inductive Types for Free p.21/22

81 Related work Joyal 86 Foncteurs Analytiques et Espèces de Structures Jay 95 A semantics for shape Dybjer 97 Representing inductively defined sets by wellorderings in Martin-Löf s type theory Hoogendijk and de Moor 00 Container Types Categorically Moerdijk and Palmgren 00 Wellfounded Trees in Categories Hasegawa 02 Two applications of analytic functors Gambino and Hyland 03 Wellfounded Trees and Dependent Polynomial Functors Inductive Types for Free p.22/22

Constructing Strictly Positive Families

Constructing Strictly Positive Families Constructing Strictly Positive Families Peter Morris Thorsten Altenkirch Neil Ghani School of Computer Science and Information Technology University of Nottingham, England, Email:{pwm,txa,nxg}@csnottacuk

More information

Dependent Polymorphism. Makoto Hamana

Dependent Polymorphism. Makoto Hamana 1 Dependent Polymorphism Makoto Hamana Department of Computer Science, Gunma University, Japan http://www.cs.gunma-u.ac.jp/ hamana/ This Talk 2 [I] A semantics for dependently-typed programming [II] A

More information

Categorical models of type theory

Categorical models of type theory 1 / 59 Categorical models of type theory Michael Shulman February 28, 2012 2 / 59 Outline 1 Type theory and category theory 2 Categorical type constructors 3 Dependent types and display maps 4 Fibrations

More information

Universes. Universes for Data. Peter Morris. University of Nottingham. November 12, 2009

Universes. Universes for Data. Peter Morris. University of Nottingham. November 12, 2009 for Data Peter Morris University of Nottingham November 12, 2009 Introduction Outline 1 Introduction What is DTP? Data Types in DTP Schemas for Inductive Families 2 of Data Inductive Types Inductive Families

More information

From natural numbers to the lambda calculus

From natural numbers to the lambda calculus From natural numbers to the lambda calculus Benedikt Ahrens joint work with Ralph Matthes and Anders Mörtberg Outline 1 About UniMath 2 Signatures and associated syntax Outline 1 About UniMath 2 Signatures

More information

When is an abstract data type a functor?

When is an abstract data type a functor? When is an abstract data type a functor? Pablo Nogueira School of Computer Science and IT University of Nottingham, UK Abstract A parametric algebraic data type in a functional program is a functor if

More information

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes)

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) Steve Vickers CS Theory Group Birmingham 1. Sheaves "Sheaf = continuous set-valued map" TACL Tutorial

More information

Representing Cyclic Structures as Nested Datatypes. Makoto Hamana

Representing Cyclic Structures as Nested Datatypes. Makoto Hamana Representing Cyclic Structures as Nested Datatypes Makoto Hamana Department of Computer Science, Gunma University, Japan Joint work with Neil Ghani Tarmo Uustalu Varmo Vene U. Nottingham U. Tallinn U.

More information

Negations in Refinement Type Systems

Negations in Refinement Type Systems Negations in Refinement Type Systems T. Tsukada (U. Tokyo) 14th March 2016 Shonan, JAPAN This Talk About refinement intersection type systems that refute judgements of other type systems. Background Refinement

More information

Topos Theory. Lectures 3-4: Categorical preliminaries II. Olivia Caramello. Topos Theory. Olivia Caramello. Basic categorical constructions

Topos Theory. Lectures 3-4: Categorical preliminaries II. Olivia Caramello. Topos Theory. Olivia Caramello. Basic categorical constructions Lectures 3-4: Categorical preliminaries II 2 / 17 Functor categories Definition Let C and D be two categories. The functor category [C,D] is the category having as objects the functors C D and as arrows

More information

Modular dependent induction in Coq, Mendler-style. Paolo Torrini

Modular dependent induction in Coq, Mendler-style. Paolo Torrini Modular dependent induction in Coq, Mendler-style Paolo Torrini Dept. of Computer Science, KU Leuven ITP 16, Nancy, 22.08.2016 * The Author left the Institution in April 2016 motivation: cost-effective

More information

Arithmetic universes as generalized point-free spaces

Arithmetic universes as generalized point-free spaces Arithmetic universes as generalized point-free spaces Steve Vickers CS Theory Group Birmingham * Grothendieck: "A topos is a generalized topological space" *... it's represented by its category of sheaves

More information

Coalgebraic Semantics in Logic Programming

Coalgebraic Semantics in Logic Programming Coalgebraic Semantics in Logic Programming Katya Komendantskaya School of Computing, University of Dundee, UK CSL 11, 13 September 2011 Katya (Dundee) Coalgebraic Semantics in Logic Programming TYPES 11

More information

Bag Equivalence via a Proof-Relevant Membership Relation

Bag Equivalence via a Proof-Relevant Membership Relation Bag Equivalence via a Proof-Relevant Membership Relation Nils Anders Danielsson Chalmers University of Technology and University of Gothenburg Abstract. Two lists are bag equivalent if they are permutations

More information

From signatures to monads in UniMath

From signatures to monads in UniMath From signatures to monads in UniMath Benedikt Ahrens, Ralph Matthes, Anders Mörtberg To cite this version: Benedikt Ahrens, Ralph Matthes, Anders Mörtberg. From signatures to monads in UniMath. 2016.

More information

The Algebra of Programming in Haskell

The Algebra of Programming in Haskell The Algebra of Programming in Haskell Bruno Oliveira The Algebra of Programming in Haskell p.1/21 Datatype Generic Programming - Motivation/Goals The project is to develop a novel mechanism for parameterizing

More information

ABriefOverviewofAgda A Functional Language with Dependent Types

ABriefOverviewofAgda A Functional Language with Dependent Types ABriefOverviewofAgda A Functional Language with Dependent Types Ana Bove, Peter Dybjer, and Ulf Norell e-mail: {bove,peterd,ulfn}@chalmers.se Chalmers University of Technology, Gothenburg, Sweden Abstract.

More information

Implementing the Opetopes:

Implementing the Opetopes: Implementing the Opetopes: Programming with Higher Dimensional Trees Eric Finster May 22, 2018 Abstract The opetopes, introduced by Baez and Dolan in [BD97] as a part of their proposed definition of higher

More information

Mathematics for Computer Scientists 2 (G52MC2)

Mathematics for Computer Scientists 2 (G52MC2) Mathematics for Computer Scientists 2 (G52MC2) L07 : Operations on sets School of Computer Science University of Nottingham October 29, 2009 Enumerations We construct finite sets by enumerating a list

More information

Arrays and Memory Allocation

Arrays and Memory Allocation Arrays II O. Institute of Cybernetics at TUT Theory Days, Koke, 3-5 Feb. 2006 Outline 1 Arrays: a Memory Model for Computations with Side Effects Previous Works 2 Potentially Infinite Arrays are comonadic

More information

Discrete Mathematics Lecture 4. Harper Langston New York University

Discrete Mathematics Lecture 4. Harper Langston New York University Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a

More information

Theory of Computer Science. D2.1 Introduction. Theory of Computer Science. D2.2 LOOP Programs. D2.3 Syntactic Sugar. D2.

Theory of Computer Science. D2.1 Introduction. Theory of Computer Science. D2.2 LOOP Programs. D2.3 Syntactic Sugar. D2. Theory of Computer Science April 20, 2016 D2. LOOP- and WHILE-Computability Theory of Computer Science D2. LOOP- and WHILE-Computability Malte Helmert University of Basel April 20, 2016 D2.1 Introduction

More information

Towards the syntax and semantics of higher dimensional type theory

Towards the syntax and semantics of higher dimensional type theory Towards the syntax and semantics of higher dimensional type theory Thorsten Altenkirch Nicolai Kraus Oxford, HoTT/UF 18, 8 July [picture by Andrej Bauer, (CC BY-SA 2.5 SI)] The goal: type theory in type

More information

Initial Algebra Semantics for Cyclic Sharing Structures. Makoto Hamana

Initial Algebra Semantics for Cyclic Sharing Structures. Makoto Hamana Initial Algebra Semantics for Cyclic Sharing Structures Makoto Hamana Department of Computer Science, Gunma University, Japan July, 2009, TLCA 09 http://www.cs.gunma-u.ac.jp/ hamana/ This Work How to inductively

More information

Programming with Universes, Generically

Programming with Universes, Generically Programming with Universes, Generically Andres Löh Well-Typed LLP 24 January 2012 An introduction to Agda Agda Functional programming language Static types Dependent types Pure (explicit effects) Total

More information

Contents Introduction and Technical Preliminaries Composition of Schema Mappings: Syntax and Semantics

Contents Introduction and Technical Preliminaries Composition of Schema Mappings: Syntax and Semantics 1 Introduction and Technical Preliminaries... 1 1.1 Historical Background... 1 1.2 Introduction to Lattices, Algebras and Intuitionistic Logics... 5 1.3 Introduction to First-Order Logic (FOL)... 12 1.3.1

More information

An introduction to Homotopy Type Theory

An introduction to Homotopy Type Theory An introduction to Homotopy Type Theory Nicola Gambino University of Palermo Leicester, March 15th, 2013 Outline of the talk Part I: Type theory Part II: Homotopy type theory Part III: Voevodsky s Univalent

More information

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes)

ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) ACLT: Algebra, Categories, Logic in Topology - Grothendieck's generalized topological spaces (toposes) Steve Vickers CS Theory Group Birmingham 4. Toposes and geometric reasoning How to "do generalized

More information

Introductory logic and sets for Computer scientists

Introductory logic and sets for Computer scientists Introductory logic and sets for Computer scientists Nimal Nissanke University of Reading ADDISON WESLEY LONGMAN Harlow, England II Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario

More information

Game Semantics for Dependent Types

Game Semantics for Dependent Types Bath, 20 ctober, 2015 verview Game theoretic model of dependent type theory (DTT): refines model in domains and (total) continuous functions; call-by-name evaluation; faithful model of (total) DTT with

More information

Haskell Programming with Nested Types: A Principled Approach

Haskell Programming with Nested Types: A Principled Approach Haskell Programming with Nested Types: A Principled Approach Patricia Johann and Neil Ghani ({patricia,ng}@cis.strath.ac.uk) University of Strathclyde, Glasgow, G1 1XH, Scotland Abstract. Initial algebra

More information

Overview. CS389L: Automated Logical Reasoning. Lecture 6: First Order Logic Syntax and Semantics. Constants in First-Order Logic.

Overview. CS389L: Automated Logical Reasoning. Lecture 6: First Order Logic Syntax and Semantics. Constants in First-Order Logic. Overview CS389L: Automated Logical Reasoning Lecture 6: First Order Logic Syntax and Semantics Işıl Dillig So far: Automated reasoning in propositional logic. Propositional logic is simple and easy to

More information

Cubical sets as a classifying topos

Cubical sets as a classifying topos Chalmers CMU Now: Aarhus University Homotopy Type Theory The homotopical interpretation of type theory: types as spaces upto homotopy dependent types as fibrations (continuous families of spaces) identity

More information

ELEMENTARY NUMBER THEORY AND METHODS OF PROOF

ELEMENTARY NUMBER THEORY AND METHODS OF PROOF CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.6 Indirect Argument: Contradiction and Contraposition Copyright Cengage Learning. All

More information

(Effectul) Game Semantics for Dependent Types

(Effectul) Game Semantics for Dependent Types Eindhoven, 3 April 2016 Overview Game theoretic models of dependent type theory (DTT): get faithful model of (total) DTT with Σ-, Π-, intensional Id-types and finite inductive type families; fully complete

More information

All About Comonads (Part 1) An incomprehensible guide to the theory and practice of comonadic programming in Haskell

All About Comonads (Part 1) An incomprehensible guide to the theory and practice of comonadic programming in Haskell All About Comonads (Part 1) An incomprehensible guide to the theory and practice of comonadic programming in Haskell Edward Kmett http://comonad.com/ Categories Categories have objects and arrows Every

More information

1 Elementary number theory

1 Elementary number theory Math 215 - Introduction to Advanced Mathematics Spring 2019 1 Elementary number theory We assume the existence of the natural numbers and the integers N = {1, 2, 3,...} Z = {..., 3, 2, 1, 0, 1, 2, 3,...},

More information

Partiality, State and Dependent Types

Partiality, State and Dependent Types Partiality, State and Dependent Types Kasper Svendsen 1, Lars Birkedal 1, and Aleksandar Nanevski 2 1 IT University of Copenhagen {kasv,birkedal}@itu.dk 2 IMDEA Software aleks.nanevski@imdea.org Abstract.

More information

CONTENTS Equivalence Classes Partition Intersection of Equivalence Relations Example Example Isomorphis

CONTENTS Equivalence Classes Partition Intersection of Equivalence Relations Example Example Isomorphis Contents Chapter 1. Relations 8 1. Relations and Their Properties 8 1.1. Definition of a Relation 8 1.2. Directed Graphs 9 1.3. Representing Relations with Matrices 10 1.4. Example 1.4.1 10 1.5. Inverse

More information

Metrics on diagrams and persistent homology

Metrics on diagrams and persistent homology Background Categorical ph Relative ph More structure Department of Mathematics Cleveland State University p.bubenik@csuohio.edu http://academic.csuohio.edu/bubenik_p/ July 18, 2013 joint work with Vin

More information

Introduction to Co-Induction in Coq

Introduction to Co-Induction in Coq August 2005 Motivation Reason about infinite data-structures, Reason about lazy computation strategies, Reason about infinite processes, abstracting away from dates. Finite state automata, Temporal logic,

More information

Univalent Foundations Project (a modified version of an NSF grant application)

Univalent Foundations Project (a modified version of an NSF grant application) Univalent Foundations Project (a modified version of an NSF grant application) Vladimir Voevodsky October 1, 2010 1 General outline of the proposed project While working on the completion of the proof

More information

COALGEBRAIC MODELS FOR COMBINATORIAL MODEL CATEGORIES

COALGEBRAIC MODELS FOR COMBINATORIAL MODEL CATEGORIES COALGEBRAIC MODELS FOR COMBINATORIAL MODEL CATEGORIES MICHAEL CHING AND EMILY RIEHL Abstract. We show that the category of algebraically cofibrant objects in a combinatorial and simplicial model category

More information

Fully Generic Programming Over Closed Universes of Inductive- Recursive Types

Fully Generic Programming Over Closed Universes of Inductive- Recursive Types Portland State University PDXScholar Dissertations and Theses Dissertations and Theses Spring 6-6-2017 Fully Generic Programming Over Closed Universes of Inductive- Recursive Types Larry Diehl Portland

More information

Lecture 18: Groupoids and spaces

Lecture 18: Groupoids and spaces Lecture 18: Groupoids and spaces The simplest algebraic invariant of a topological space T is the set π 0 T of path components. The next simplest invariant, which encodes more of the topology, is the fundamental

More information

arxiv: v1 [math.ag] 26 Mar 2012

arxiv: v1 [math.ag] 26 Mar 2012 Cartesian modules in small categories arxiv:1203.5724v1 [math.ag] 26 Mar 2012 Edgar Enochs enochs@ms.uky.edu Department of Mathematics University of Kentucky Lexington, KY 40506-0027 U.S.A Sergio Estrada

More information

Inductive datatypes in HOL. lessons learned in Formal-Logic Engineering

Inductive datatypes in HOL. lessons learned in Formal-Logic Engineering Inductive datatypes in HOL lessons learned in Formal-Logic Engineering Stefan Berghofer and Markus Wenzel Institut für Informatik TU München = Isabelle λ β HOL α 1 Introduction Applications of inductive

More information

Structural polymorphism in Generic Haskell

Structural polymorphism in Generic Haskell Structural polymorphism in Generic Haskell Andres Löh andres@cs.uu.nl 5 February 2005 Overview About Haskell Genericity and other types of polymorphism Examples of generic functions Generic Haskell Overview

More information

Wellfounded Recursion with Copatterns

Wellfounded Recursion with Copatterns Wellfounded Recursion with Copatterns Andreas Abel Department of Computer Science and Engineering Chalmers and Gothenburg University, Sweden 25th Nordic Workshop on Programming Theory Tallinn, Estonia

More information

Bringing Functions into the Fold Tom Schrijvers. Leuven Haskell User Group

Bringing Functions into the Fold Tom Schrijvers. Leuven Haskell User Group Bringing Functions into the Fold Tom Schrijvers Leuven Haskell User Group Data Recursion Genericity Schemes Expression Problem Rank-N Polymorphism Monads GADTs DSLs Type Type Families Classes Effect Free

More information

Monads and More: Part 3

Monads and More: Part 3 Monads and More: Part 3 Tarmo Uustalu, Tallinn Nottingham, 14 18 May 2007 Arrows (Hughes) Arrows are a generalization of strong monads on symmetric monoidal categories (in their Kleisli triple form). An

More information

CS611 Lecture 33 Equirecursive types & Recursive domain equations November 19, 2001

CS611 Lecture 33 Equirecursive types & Recursive domain equations November 19, 2001 CS611 Lecture 33 Equirecursive types & Recursive domain equations November 19, 001 Scribe: Hongzhou Liu and Junhwan Kim Lecturer: Andrew Myers 1 Semantics of recursive types, part There are two basic approaches

More information

Explicit Substitutions and Higher-Order Syntax

Explicit Substitutions and Higher-Order Syntax Explicit Substitutions and Higher-Order Syntax Neil Ghani School of Computer Science and IT, University of Nottingham, Jubilee Campus, Wollaton Rd, Nottingham NG8 1BB, UK, nxg@cs.nott.ac.uk Tarmo Uustalu

More information

Specification, Verification, and Interactive Proof

Specification, Verification, and Interactive Proof Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.

More information

A Functorial Query Language. Ryan Wisnesky Harvard University DCP 2014

A Functorial Query Language. Ryan Wisnesky Harvard University DCP 2014 A Functorial Query Language Ryan Wisnesky ryan@cs.harvard.edu Harvard University DCP 2014 1 History In the early 1990s, Rosebrugh et al noticed that finitely presented categories could be thought of as

More information

Recursive Types. Chapter 7

Recursive Types. Chapter 7 Chapter 7 Recursive Types By adding special rules for natural numbers to λ, we obtained system T. We may now want to have separate rules for other data structures: lists, binary trees, streams. We can

More information

Verified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 27, 2017

Verified Characteristic Formulae for CakeML. Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 27, 2017 Verified Characteristic Formulae for CakeML Armaël Guéneau, Magnus O. Myreen, Ramana Kumar, Michael Norrish April 27, 2017 Goal: write programs in a high-level (ML-style) language, prove them correct interactively,

More information

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,,

Definition: A context-free grammar (CFG) is a 4- tuple. variables = nonterminals, terminals, rules = productions,, CMPSCI 601: Recall From Last Time Lecture 5 Definition: A context-free grammar (CFG) is a 4- tuple, variables = nonterminals, terminals, rules = productions,,, are all finite. 1 ( ) $ Pumping Lemma for

More information

Substitution in Structural Operational Semantics and value-passing process calculi

Substitution in Structural Operational Semantics and value-passing process calculi Substitution in Structural Operational Semantics and value-passing process calculi Sam Staton Computer Laboratory University of Cambridge Abstract Consider a process calculus that allows agents to communicate

More information

An introduction to Category Theory for Software Engineers*

An introduction to Category Theory for Software Engineers* An introduction to Category Theory for Software Engineers* Dr Steve Easterbrook Associate Professor, Dept of Computer Science, University of Toronto sme@cs.toronto.edu *slides available at http://www.cs.toronto.edu/~sme/presentations/cat101.pdf

More information

A Database of Categories

A Database of Categories A Database of Categories Michael Fleming Department of Computer Science University of Waterloo Waterloo, Ont, Canada Ryan Gunther Department of Computer Science University of Waterloo Waterloo, Ont, Canada

More information

Probabilistic systems a place where categories meet probability

Probabilistic systems a place where categories meet probability Probabilistic systems a place where categories meet probability Ana Sokolova SOS group, Radboud University Nijmegen University Dortmund, CS Kolloquium, 12.6.6 p.1/32 Outline Introduction - probabilistic

More information

Category Theory. Andrew Pitts. Module L108, Part III and MPhil. ACS 2019 Computer Science Tripos University of Cambridge L0 1

Category Theory. Andrew Pitts. Module L108, Part III and MPhil. ACS 2019 Computer Science Tripos University of Cambridge L0 1 Category Theory Andrew Pitts Module L108, Part III and MPhil. ACS 2019 Computer Science Tripos University of Cambridge L0 1 Course web page Go to http://www.cl.cam.ac.uk/teaching/1819/l108 for these slides

More information

Interleaving data and effects

Interleaving data and effects Under consideration for publication in J. Functional Programming 1 Interleaving data and effects ROBERT ATKEY University of Strathclyde PATRICIA JOHANN Appalachian State University (e-mail: robert.atkey@strath.ac.uk,

More information

Post and Jablonsky Algebras of Compositions (Superpositions)

Post and Jablonsky Algebras of Compositions (Superpositions) Pure and Applied Mathematics Journal 2018 (6): 95-100 http://www.sciencepublishinggroup.com/j/pamj doi: 10.11648/j.pamj.2018006.13 SSN: 2326-990 (Print) SSN: 2326-9812 (Online) Post and Jablonsky Algebras

More information

Programming with Dependent Types Interactive programs and Coalgebras

Programming with Dependent Types Interactive programs and Coalgebras Programming with Dependent Types Interactive programs and Coalgebras Anton Setzer Swansea University, Swansea, UK 14 August 2012 1/ 50 A Brief Introduction into ML Type Theory Interactive Programs in Dependent

More information

The Essence of Ornaments

The Essence of Ornaments Under consideration for publication in J. Functional Programming 1 The Essence of Ornaments Pierre-Evariste Dagand Sorbonne Universités, UPMC Univ Paris 06, CNRS, Inria, LIP6 UMR 7606 (e-mail: pierre-evariste.dagand@lip6.fr)

More information

Point-Set Topology II

Point-Set Topology II Point-Set Topology II Charles Staats September 14, 2010 1 More on Quotients Universal Property of Quotients. Let X be a topological space with equivalence relation. Suppose that f : X Y is continuous and

More information

An introduction to simplicial sets

An introduction to simplicial sets An introduction to simplicial sets 25 Apr 2010 1 Introduction This is an elementary introduction to simplicial sets, which are generalizations of -complexes from algebraic topology. The theory of simplicial

More information

Using Agda to Explore Path-Oriented Models of Type Theory

Using Agda to Explore Path-Oriented Models of Type Theory 1/22 Using Agda to Explore Path-Oriented Models of Type Theory Andrew Pitts joint work with Ian Orton Computer Laboratory Outline 2/22 The mathematical problem find new models of Homotopy Type Theory Why

More information

Interactive Programming in Agda Objects and Graphical User Interfaces

Interactive Programming in Agda Objects and Graphical User Interfaces Under consideration for publication in J. Functional Programming 1 Interactive Programming in Agda Objects and Graphical User Interfaces ANDREAS ABEL Department of Computer Science and Engineering, Gothenburg

More information

Thomas Jech. Set Theory. The Third Millennium Edition, revised and expanded. 4y Springer

Thomas Jech. Set Theory. The Third Millennium Edition, revised and expanded. 4y Springer Thomas Jech Set Theory The Third Millennium Edition, revised and expanded 4y Springer Part I. Basic Set Theory 1. Axioms of Set Theory 3 Axioms of Zermelo-Fraenkel. Why Axiomatic Set Theory? Language of

More information

Generic programming with ornaments and dependent types

Generic programming with ornaments and dependent types Utrecht University Master Thesis Computing Science Generic programming with ornaments and dependent types Yorick Sijsling Supervisors dr. Wouter Swierstra prof. dr. Johan Jeuring June 29, 2016 Abstract

More information

Transporting Functions across Ornaments

Transporting Functions across Ornaments Under consideration for publication in J. Functional Programming 1 Transporting Functions across Ornaments PIERRE-ÉVARISTE DAGAND Inria CONOR McBRIDE University of Strathclyde (e-mail: pierre-evariste.dagand@inria.fr,conor@cis.strath.ac.uk)

More information

Univalent fibrations in type theory and topology

Univalent fibrations in type theory and topology Univalent fibrations in type theory and topology Dan Christensen University of Western Ontario Wayne State University, April 11, 2016 Outline: Background on type theory Equivalence and univalence A characterization

More information

Lecture 0: Reivew of some basic material

Lecture 0: Reivew of some basic material Lecture 0: Reivew of some basic material September 12, 2018 1 Background material on the homotopy category We begin with the topological category TOP, whose objects are topological spaces and whose morphisms

More information

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University

Talen en Compilers. Jurriaan Hage , period 2. November 13, Department of Information and Computing Sciences Utrecht University Talen en Compilers 2017-2018, period 2 Jurriaan Hage Department of Information and Computing Sciences Utrecht University November 13, 2017 1. Introduction 1-1 This lecture Introduction Course overview

More information

The three faces of homotopy type theory. Type theory and category theory. Minicourse plan. Typing judgments. Michael Shulman.

The three faces of homotopy type theory. Type theory and category theory. Minicourse plan. Typing judgments. Michael Shulman. The three faces of homotopy type theory Type theory and category theory Michael Shulman 1 A programming language. 2 A foundation for mathematics based on homotopy theory. 3 A calculus for (, 1)-category

More information

Discrete Mathematics SECOND EDITION OXFORD UNIVERSITY PRESS. Norman L. Biggs. Professor of Mathematics London School of Economics University of London

Discrete Mathematics SECOND EDITION OXFORD UNIVERSITY PRESS. Norman L. Biggs. Professor of Mathematics London School of Economics University of London Discrete Mathematics SECOND EDITION Norman L. Biggs Professor of Mathematics London School of Economics University of London OXFORD UNIVERSITY PRESS Contents PART I FOUNDATIONS Statements and proofs. 1

More information

TOPOLOGY, DR. BLOCK, FALL 2015, NOTES, PART 3.

TOPOLOGY, DR. BLOCK, FALL 2015, NOTES, PART 3. TOPOLOGY, DR. BLOCK, FALL 2015, NOTES, PART 3. 301. Definition. Let m be a positive integer, and let X be a set. An m-tuple of elements of X is a function x : {1,..., m} X. We sometimes use x i instead

More information

T. Background material: Topology

T. Background material: Topology MATH41071/MATH61071 Algebraic topology Autumn Semester 2017 2018 T. Background material: Topology For convenience this is an overview of basic topological ideas which will be used in the course. This material

More information

The design of a programming language for provably correct programs: success and failure

The design of a programming language for provably correct programs: success and failure The design of a programming language for provably correct programs: success and failure Don Sannella Laboratory for Foundations of Computer Science School of Informatics, University of Edinburgh http://homepages.inf.ed.ac.uk/dts

More information

Contractive Signatures with Recursive Types, Type Parameters, and Abstract Types

Contractive Signatures with Recursive Types, Type Parameters, and Abstract Types Contractive Signatures with Recursive Types, Type Parameters, and Abstract Types Hyeonseung Im 1, Keiko Nakata 2, and Sungwoo Park 3 1 LRI - Université Paris-Sud 11, Orsay, France 2 Institute of Cybernetics

More information

Lecture slides & distribution files:

Lecture slides & distribution files: Type Theory Lecture slides & distribution files: http://www.cs.rhul.ac.uk/home/zhaohui/ttlectures.html Zhaohui Luo Department of Computer Science Royal Holloway, University of London April 2011 2 Type

More information

Generic discrimination

Generic discrimination Generic discrimination Fritz Henglein henglein@diku.dk Department of Computer Science University of Copenhagen (DIKU) SSGEP, Oxford, 2015-07-06 Some simple problems Given a list of pointers, how many unique

More information

A NEW PROOF-ASSISTANT THAT REVISITS HOMOTOPY TYPE THEORY THE THEORETICAL FOUNDATIONS OF COQ USING NICOLAS TABAREAU

A NEW PROOF-ASSISTANT THAT REVISITS HOMOTOPY TYPE THEORY THE THEORETICAL FOUNDATIONS OF COQ USING NICOLAS TABAREAU COQHOTT A NEW PROOF-ASSISTANT THAT REVISITS THE THEORETICAL FOUNDATIONS OF COQ USING HOMOTOPY TYPE THEORY NICOLAS TABAREAU The CoqHoTT project Design and implement a brand-new proof assistant by revisiting

More information

A NOTE ON MORPHISMS DETERMINED BY OBJECTS

A NOTE ON MORPHISMS DETERMINED BY OBJECTS A NOTE ON MORPHISMS DETERMINED BY OBJECTS XIAO-WU CHEN, JUE LE Abstract. We prove that a Hom-finite additive category having determined morphisms on both sides is a dualizing variety. This complements

More information

On the Recognizability of Arrow and Graph Languages

On the Recognizability of Arrow and Graph Languages On the Recognizability of Arrow and Graph Languages Christoph Blume Sander Bruggink Barbara König Universität Duisburg-Essen, Germany Background Applications of finite automata and regular (word) languages

More information

A First-Order Logic with First-Class Types

A First-Order Logic with First-Class Types A First-Order Logic with First-Class Types joint work with Peter H. Schmitt and Mattias Ulbrich Institute for Theoretical Computer Science The 8th KeY Symposium, Speyer, 2009 Java Card DL modal logic based

More information

Friends with Benefits

Friends with Benefits Friends with Benefits Jasmin Blanchette, Aymeric Bouzy, Andreas Lochbihler, Andrei Popescu, Dmitriy Traytel To cite this version: Jasmin Blanchette, Aymeric Bouzy, Andreas Lochbihler, Andrei Popescu, Dmitriy

More information

Type-driven Development of Communicating Systems in Idris

Type-driven Development of Communicating Systems in Idris Type-driven Development of Communicating Systems in Idris Edwin Brady (ecb10@st-andrews.ac.uk) University of St Andrews, Scotland, UK @edwinbrady Lambda World, October 1st 2016 Idris is a pure functional

More information

Recursively defined cpo algebras

Recursively defined cpo algebras Recursively defined cpo algebras Ohad Kammar and Paul Blain Levy July 13, 2018 Ohad Kammar and Paul Blain Levy Recursively defined cpo algebras July 13, 2018 1 / 16 Outline 1 Bilimit compact categories

More information

Towards elementary -toposes

Towards elementary -toposes Towards elementary -toposes Michael Shulman 1 1 (University of San Diego) September 13, 2018 Vladimir Voevodsky Memorial Conference Institute for Advanced Study Outline 1 A bit of history 2 Elementary

More information

Category Theory & Functional Data Abstraction

Category Theory & Functional Data Abstraction Category Theory & Functional Data Abstraction Brandon Shapiro Math 100b 1. Introduction Throughout mathematics, particularly algebra, there are numerous commonalities between the studies of various objects

More information

Generic Programming with Adjunctions

Generic Programming with Adjunctions Generic Programming with Adjunctions 0.0 Generic Programming with Adjunctions Ralf Hinze Computing Laboratory, University of Oxford Wolfson Building, Parks Road, Oxford, OX1 3QD, England ralf.hinze@comlab.ox.ac.uk

More information

An Introduction to Programming and Proving in Agda (incomplete draft)

An Introduction to Programming and Proving in Agda (incomplete draft) An Introduction to Programming and Proving in Agda (incomplete draft) Peter Dybjer January 29, 2018 1 A first Agda module Your first Agda-file is called BoolModule.agda. Its contents are module BoolModule

More information

INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 6

INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 6 INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 6 RAVI VAKIL Contents 1. Loose ends 1 2. Playing around with the structure sheaf of the plane 2 3. Defining affine varieties and prevarieties 3 At the end, I collected

More information

Deforestation, program transformation, and cut-elimination

Deforestation, program transformation, and cut-elimination Electronic Notes in Theoretical Computer Science 44 No. 1 (2001) URL: http://www.elsevier.nl/locate/entcs/volume44.html 40 pages Deforestation, program transformation, and cut-elimination Robin Cockett

More information

Less Is More. Generic Programming Theory and Practice. José Pedro Magalhães

Less Is More. Generic Programming Theory and Practice. José Pedro Magalhães Less Is More Generic Programming Theory and Practice José Pedro Magalhães Promotoren: Co-promotor: Prof.dr. J.T. Jeuring Prof.dr. S.D. Swierstra Dr. A. Löh This work has been supported by the Fundação

More information

Crash Course in Monads. Vlad Patryshev

Crash Course in Monads. Vlad Patryshev Crash Course in Monads Vlad Patryshev Introduction Monads in programming seem to be the most mysterious notion of the century. I find two reasons for this: lack of familiarity with category theory; many

More information