Productive Coprogramming with Guarded Recursion
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Slides by Akihisa
Complete non-orders and fixed points Akihisa Yamada1, Jérémy Dubut1,2 1 National Institute of Informatics, Tokyo, Japan 2 Japanese-French Laboratory for Informatics, Tokyo, Japan Supported by ERATO HASUO Metamathematics for Systems Design Project (No. JPMJER1603), JST Introduction • Interactive Theorem Proving is appreciated for reliability • But it's also engineering tool for mathematics (esp. Isabelle/jEdit) • refactoring proofs and claims • sledgehammer • quickcheck/nitpick(/nunchaku) • We develop an Isabelle library of order theory (as a case study) ⇒ we could generalize many known results, like: • completeness conditions: duality and relationships • Knaster-Tarski fixed-point theorem • Kleene's fixed-point theorem Order A binary relation ⊑ • reflexive ⟺ � ⊑ � • transitive ⟺ � ⊑ � and � ⊑ � implies � ⊑ � • antisymmetric ⟺ � ⊑ � and � ⊑ � implies � = � • partial order ⟺ reflexive + transitive + antisymmetric Order A binary relation ⊑ locale less_eq_syntax = fixes less_eq :: 'a ⇒ 'a ⇒ bool (infix "⊑" 50) • reflexive ⟺ � ⊑ � locale reflexive = ... assumes "x ⊑ x" • transitive ⟺ � ⊑ � and � ⊑ � implies � ⊑ � locale transitive = ... assumes "x ⊑ y ⟹ y ⊑ z ⟹ x ⊑ z" • antisymmetric ⟺ � ⊑ � and � ⊑ � implies � = � locale antisymmetric = ... assumes "x ⊑ y ⟹ y ⊑ x ⟹ x = y" • partial order ⟺ reflexive + transitive + antisymmetric locale partial_order = reflexive + transitive + antisymmetric Quasi-order A binary relation ⊑ locale less_eq_syntax = fixes less_eq :: 'a ⇒ 'a ⇒ bool (infix "⊑" 50) • reflexive ⟺ � ⊑ � locale reflexive = ... assumes -
NICOLAS WU Department of Computer Science, University of Bristol (E-Mail: [email protected], [email protected])
Hinze, R., & Wu, N. (2016). Unifying Structured Recursion Schemes. Journal of Functional Programming, 26, [e1]. https://doi.org/10.1017/S0956796815000258 Peer reviewed version Link to published version (if available): 10.1017/S0956796815000258 Link to publication record in Explore Bristol Research PDF-document University of Bristol - Explore Bristol Research General rights This document is made available in accordance with publisher policies. Please cite only the published version using the reference above. Full terms of use are available: http://www.bristol.ac.uk/red/research-policy/pure/user-guides/ebr-terms/ ZU064-05-FPR URS 15 September 2015 9:20 Under consideration for publication in J. Functional Programming 1 Unifying Structured Recursion Schemes An Extended Study RALF HINZE Department of Computer Science, University of Oxford NICOLAS WU Department of Computer Science, University of Bristol (e-mail: [email protected], [email protected]) Abstract Folds and unfolds have been understood as fundamental building blocks for total programming, and have been extended to form an entire zoo of specialised structured recursion schemes. A great number of these schemes were unified by the introduction of adjoint folds, but more exotic beasts such as recursion schemes from comonads proved to be elusive. In this paper, we show how the two canonical derivations of adjunctions from (co)monads yield recursion schemes of significant computational importance: monadic catamorphisms come from the Kleisli construction, and more astonishingly, the elusive recursion schemes from comonads come from the Eilenberg-Moore construction. Thus we demonstrate that adjoint folds are more unifying than previously believed. 1 Introduction Functional programmers have long realised that the full expressive power of recursion is untamable, and so intensive research has been carried out into the identification of an entire zoo of structured recursion schemes that are well-behaved and more amenable to program comprehension and analysis (Meijer et al., 1991). -
Mathematical Tools MPRI 2–6: Abstract Interpretation, Application to Verification and Static Analysis
Mathematical Tools MPRI 2{6: Abstract Interpretation, application to verification and static analysis Antoine Min´e CNRS, Ecole´ normale sup´erieure course 1, 2012{2013 course 1, 2012{2013 Mathematical Tools Antoine Min´e p. 1 / 44 Order theory course 1, 2012{2013 Mathematical Tools Antoine Min´e p. 2 / 44 Partial orders Partial orders course 1, 2012{2013 Mathematical Tools Antoine Min´e p. 3 / 44 Partial orders Partial orders Given a set X , a relation v2 X × X is a partial order if it is: 1 reflexive: 8x 2 X ; x v x 2 antisymmetric: 8x; y 2 X ; x v y ^ y v x =) x = y 3 transitive: 8x; y; z 2 X ; x v y ^ y v z =) x v z. (X ; v) is a poset (partially ordered set). If we drop antisymmetry, we have a preorder instead. course 1, 2012{2013 Mathematical Tools Antoine Min´e p. 4 / 44 Partial orders Examples of posets (Z; ≤) is a poset (in fact, completely ordered) (P(X ); ⊆) is a poset (not completely ordered) (S; =) is a poset for any S course 1, 2012{2013 Mathematical Tools Antoine Min´e p. 5 / 44 Partial orders Examples of posets (cont.) Given by a Hasse diagram, e.g.: g e f g v g c d f v f ; g e v e; g b d v d; f ; g c v c; e; f ; g b v b; c; d; e; f ; g a a v a; b; c; d; e; f ; g course 1, 2012{2013 Mathematical Tools Antoine Min´e p. -
The Poset of Closure Systems on an Infinite Poset: Detachability and Semimodularity Christian Ronse
The poset of closure systems on an infinite poset: Detachability and semimodularity Christian Ronse To cite this version: Christian Ronse. The poset of closure systems on an infinite poset: Detachability and semimodularity. Portugaliae Mathematica, European Mathematical Society Publishing House, 2010, 67 (4), pp.437-452. 10.4171/PM/1872. hal-02882874 HAL Id: hal-02882874 https://hal.archives-ouvertes.fr/hal-02882874 Submitted on 31 Aug 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Portugal. Math. (N.S.) Portugaliae Mathematica Vol. xx, Fasc. , 200x, xxx–xxx c European Mathematical Society The poset of closure systems on an infinite poset: detachability and semimodularity Christian Ronse Abstract. Closure operators on a poset can be characterized by the corresponding clo- sure systems. It is known that in a directed complete partial order (DCPO), in particular in any finite poset, the collection of all closure systems is closed under arbitrary inter- section and has a “detachability” or “anti-matroid” property, which implies that the collection of all closure systems is a lower semimodular complete lattice (and dually, the closure operators form an upper semimodular complete lattice). After reviewing the history of the problem, we generalize these results to the case of an infinite poset where closure systems do not necessarily constitute a complete lattice; thus the notions of lower semimodularity and detachability are extended accordingly. -
Programming Language Semantics a Rewriting Approach
Programming Language Semantics A Rewriting Approach Grigore Ros, u University of Illinois at Urbana-Champaign Chapter 2 Background and Preliminaries 15 2.6 Complete Partial Orders and the Fixed-Point Theorem This section introduces a fixed-point theorem for complete partial orders. Our main use of this theorem is to give denotational semantics to iterative (in Section 3.4) and to recursive (in Section 4.8) language constructs. Complete partial orders with bottom elements are at the core of both domain theory and denotational semantics, often identified with the notion of “domain” itself. 2.6.1 Posets, Upper Bounds and Least Upper Bounds Here we recall basic notions of partial and total orders, such as upper bounds and least upper bounds, and discuss several examples and counter-examples. Definition 14. A partial order, or a poset (from partial order set) (D, ) consists of a set D and a binary v relation on D, written as an infix operation, which is v reflexive, that is, x x for any x D; • v ∈ transitive, that is, for any x, y, z D, x y and y z imply x z; and • ∈ v v v anti-symmetric, that is, if x y and y x for some x, y D then x = y. • v v ∈ A partial order (D, ) is called a total order when x y or y x for any x, y D. v v v ∈ Here are some examples of partial or total orders: ( (S ), ) is a partial order, where (S ) is the powerset of a set S , that is, the set of subsets of S . -
Practical Coinduction
Math. Struct. in Comp. Science: page 1 of 21. c Cambridge University Press 2016 doi:10.1017/S0960129515000493 Practical coinduction DEXTER KOZEN† and ALEXANDRA SILVA‡ †Computer Science, Cornell University, Ithaca, New York 14853-7501, U.S.A. Email: [email protected] ‡Intelligent Systems, Radboud University Nijmegen, Postbus 9010, 6500 GL Nijmegen, the Netherlands Email: [email protected] Received 6 March 2013; revised 17 October 2014 Induction is a well-established proof principle that is taught in most undergraduate programs in mathematics and computer science. In computer science, it is used primarily to reason about inductively defined datatypes such as finite lists, finite trees and the natural numbers. Coinduction is the dual principle that can be used to reason about coinductive datatypes such as infinite streams or trees, but it is not as widespread or as well understood. In this paper, we illustrate through several examples the use of coinduction in informal mathematical arguments. Our aim is to promote the principle as a useful tool for the working mathematician and to bring it to a level of familiarity on par with induction. We show that coinduction is not only about bisimilarity and equality of behaviors, but also applicable to a variety of functions and relations defined on coinductive datatypes. 1. Introduction Perhaps the single most important general proof principle in computer science, and argu- ably in all of mathematics, is induction. There is a valid induction principle corresponding to any well-founded relation, but in computer science, it is most often seen in the form known as structural induction, in which the domain of discourse is an inductively-defined datatype such as finite lists, finite trees, or the natural numbers. -
Partial Orders — Basics
Partial Orders — Basics Edward A. Lee UC Berkeley — EECS EECS 219D — Concurrent Models of Computation Last updated: January 23, 2014 Outline Sets Join (Least Upper Bound) Relations and Functions Meet (Greatest Lower Bound) Notation Example of Join and Meet Directed Sets, Bottom Partial Order What is Order? Complete Partial Order Strict Partial Order Complete Partial Order Chains and Total Orders Alternative Definition Quiz Example Partial Orders — Basics Sets Frequently used sets: • B = {0, 1}, the set of binary digits. • T = {false, true}, the set of truth values. • N = {0, 1, 2, ···}, the set of natural numbers. • Z = {· · · , −1, 0, 1, 2, ···}, the set of integers. • R, the set of real numbers. • R+, the set of non-negative real numbers. Edward A. Lee | UC Berkeley — EECS3/32 Partial Orders — Basics Relations and Functions • A binary relation from A to B is a subset of A × B. • A partial function f from A to B is a relation where (a, b) ∈ f and (a, b0) ∈ f =⇒ b = b0. Such a partial function is written f : A*B. • A total function or just function f from A to B is a partial function where for all a ∈ A, there is a b ∈ B such that (a, b) ∈ f. Edward A. Lee | UC Berkeley — EECS4/32 Partial Orders — Basics Notation • A binary relation: R ⊆ A × B. • Infix notation: (a, b) ∈ R is written aRb. • A symbol for a relation: • ≤⊂ N × N • (a, b) ∈≤ is written a ≤ b. • A function is written f : A → B, and the A is called its domain and the B its codomain. -
Formal Programming Language Semantics Note 12 Complete Partial
Formal Programming Language Semantics note 12 CS4/MSc/TPG 18.11.02 Formal Programming Language Semantics note 12 Complete partial orders (CPOs) In this note we re-examine some of the ideas in the previous two notes from a slightly more abstract perspective. In particular, we are going to concentrate on the ideas behind the denotational semantics of while commands. By isolating the aspects of the situation which really made the semantics work, we will arrive at the basic concepts of a subject known as domain theory, which provides a general mathematical framework for much of denotational semantics. Complete partial orders. Let us write D for the set DCom = (S * S) from Note 9. Recall that we defined an element h ∈ D as the union of an increasing chain h0 ⊆ h1 ⊆ · · · . We now ask: what are the essential features of D that made this construction work? One reasonable answer (though not the only one!) is given by the following definitions: Definition 1 A partially ordered set, or poset, is a set D equipped with a binary relation v (called an order relation) such that the following hold for all x, y, z ∈ D: • x v x ( v is reflexive); • if x v y and y v z then x v z ( v is transitive); • if x v y and y v x then x = y ( v is antisymmetric). Definition 2 A complete partial order, or CPO, is a poset with the following prop- erty: every sequence of elements x0 v x1 v · · · in D has a limit or least upper F bound in D: that is, there is an element x ∈ D (written as i xi) such that • xi v x for all i (i.e. -
Domain Theory: an Introduction
Domain Theory: An Introduction Robert Cartwright Rebecca Parsons Rice University This monograph is an unauthorized revision of “Lectures On A Mathematical Theory of Computation” by Dana Scott [3]. Scott’s monograph uses a formulation of domains called neighborhood systems in which finite elements are selected subsets of a master set of objects called “tokens”. Since tokens have little intuitive significance, Scott has discarded neighborhood systems in favor of an equivalent formulation of domains called information systems [4]. Unfortunately, he has not rewritten his monograph to reflect this change. We have rewritten Scott’s monograph in terms of finitary bases (see Cartwright [2]) instead of information systems. A finitary basis is an information system that is closed under least upper bounds on finite consistent subsets. This convention ensures that every finite answer is represented by a single basis object instead of a set of objects. 1 The Rudiments of Domain Theory Motivation Programs perform computations by repeatedly applying primitive operations to data values. The set of primitive operations and data values depends on the particular programming language. Nearly all languages support a rich collection of data values including atomic objects, such as booleans, integers, characters, and floating point numbers, and composite objects, such as arrays, records, sequences, tuples, and infinite streams. More advanced languages also support functions and procedures as data values. To define the meaning of programs in a given language, we must first define the building blocks—the primitive data values and operations—from which computations in the language are constructed. Domain theory is a comprehensive mathematical framework for defining the data values and primitive operations of a programming language. -
The Method of Coalgebra: Exercises in Coinduction
The Method of Coalgebra: exercises in coinduction Jan Rutten CWI & RU [email protected] Draft d.d. 8 July 2018 (comments are welcome) 2 Draft d.d. 8 July 2018 Contents 1 Introduction 7 1.1 The method of coalgebra . .7 1.2 History, roughly and briefly . .7 1.3 Exercises in coinduction . .8 1.4 Enhanced coinduction: algebra and coalgebra combined . .8 1.5 Universal coalgebra . .8 1.6 How to read this book . .8 1.7 Acknowledgements . .9 2 Categories { where coalgebra comes from 11 2.1 The basic definitions . 11 2.2 Category theory in slogans . 12 2.3 Discussion . 16 3 Algebras and coalgebras 19 3.1 Algebras . 19 3.2 Coalgebras . 21 3.3 Discussion . 23 4 Induction and coinduction 25 4.1 Inductive and coinductive definitions . 25 4.2 Proofs by induction and coinduction . 28 4.3 Discussion . 32 5 The method of coalgebra 33 5.1 Basic types of coalgebras . 34 5.2 Coalgebras, systems, automata ::: ....................... 34 6 Dynamical systems 37 6.1 Homomorphisms of dynamical systems . 38 6.2 On the behaviour of dynamical systems . 41 6.3 Discussion . 44 3 4 Draft d.d. 8 July 2018 7 Stream systems 45 7.1 Homomorphisms and bisimulations of stream systems . 46 7.2 The final system of streams . 52 7.3 Defining streams by coinduction . 54 7.4 Coinduction: the bisimulation proof method . 59 7.5 Moessner's Theorem . 66 7.6 The heart of the matter: circularity . 72 7.7 Discussion . 76 8 Deterministic automata 77 8.1 Basic definitions . 78 8.2 Homomorphisms and bisimulations of automata . -
Two Counterexamples Concerning the Scott Topology on a Partial Order
TWO COUNTEREXAMPLES CONCERNING THE SCOTT TOPOLOGY ON A PARTIAL ORDER PETER HERTLING Fakult¨atf¨urInformatik, Universit¨atder Bundeswehr M¨unchen, 85577 Neubiberg, Germany e-mail address: [email protected] Abstract. We construct a complete lattice Z such that the binary supremum function sup : Z × Z ! Z is discontinuous with respect to the product topology on Z × Z of the Scott topologies on each copy of Z. In addition, we show that bounded completeness of a complete lattice Z is in general not inherited by the dcpo C(X; Z) of continuous functions from X to Z where X may be any topological space and where on Z the Scott topology is considered. 1. Introduction In this note two counterexamples in the theory of partial orders are constructed. The first counterexample concerns the question whether the binary supremum function on a sup semilattice is continuous with respect to the product topology of the Scott topology on each copy of the sup semilattice. The second counterexample concerns the question whether bounded completeness of a complete lattice is inherited by the dcpo of continuous functions from some topological space to the complete lattice. The Scott topology on a partially ordered set (short: poset)(X; ) has turned out to v be important in many areas of computer science. Given two posets (X1; 1) and (X2; 2), v v one can in a natural way define a partial order relation × on the product X1 X2. This v × gives us two natural topologies on the product Z = X1 X2: × The product of the Scott topology on (X1; 1) and of the Scott topology on (X2; 2), • v v the Scott topology on (Z; ×). -
Lattice Theory
Chapter 1 Lattice theory 1.1 Partial orders 1.1.1 Binary Relations A binary relation R on a set X is a set of pairs of elements of X. That is, R ⊆ X2. We write xRy as a synonym for (x, y) ∈ R and say that R holds at (x, y). We may also view R as a square matrix of 0’s and 1’s, with rows and columns each indexed by elements of X. Then Rxy = 1 just when xRy. The following attributes of a binary relation R in the left column satisfy the corresponding conditions on the right for all x, y, and z. We abbreviate “xRy and yRz” to “xRyRz”. empty ¬(xRy) reflexive xRx irreflexive ¬(xRx) identity xRy ↔ x = y transitive xRyRz → xRz symmetric xRy → yRx antisymmetric xRyRx → x = y clique xRy For any given X, three of these attributes are each satisfied by exactly one binary relation on X, namely empty, identity, and clique, written respectively ∅, 1X , and KX . As sets of pairs these are respectively the empty set, the set of all pairs (x, x), and the set of all pairs (x, y), for x, y ∈ X. As square X × X matrices these are respectively the matrix of all 0’s, the matrix with 1’s on the leading diagonal and 0’s off the diagonal, and the matrix of all 1’s. Each of these attributes holds of R if and only if it holds of its converse R˘, defined by xRy ↔ yRx˘ . This extends to Boolean combinations of these attributes, those formed using “and,” “or,” and “not,” such as “reflexive and either not transitive or antisymmetric”.