Formalizing Abstract Computability : Turing Categories in Coq

Total Page:16

File Type:pdf, Size:1020Kb

Formalizing Abstract Computability : Turing Categories in Coq Formalizing Abstract Computability : Turing Categories in Coq Polina Vinogradova A thesis submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Computer Science 1 Department of Electrical Engineering and Computer Science Faculty of Engineering University of Ottawa © Polina Vinogradova, Ottawa, Canada, 2017 1The Ph.D. program is a joint program with Carleton University, administered by the Ottawa- Carleton Institute of Computer Science Abstract The concept of a recursive function has been extensively studied using traditional tools of computability theory. However, with the development of category-theoretic methods it has become possible to study recursion in a more general (abstract) sense. The particular model this thesis is structured around is known as a Turing category. The structure within a Turing category models the notion of partiality as well as recursive computation, and equips us with the tools of category theory to study these concepts. The goal of this work is to build a formal language description of this computation model. Specifically, to use the Coq proof assistant to formulate informal definitions, propositions and proofs pertaining to Turing categories in the underlying formal language of Coq, the Calculus of Co-inductive Constructions (CIC). Furthermore, we have instantiated the more general Turing category formalism with a CIC description of the category which models the language of partial recursive functions exactly. ii Acknowledgements First of all, I would like to thank my supervisors, Dr. Amy Felty and Dr. Philip Scott, for their guidance and financial support, which was absolutely essential for the completion of this dissertation. Without their in-depth understanding of formal logic, knowledge of the requirements and expectations of the process of completing a doctoral dissertation, as well as excellent reference material and problem-solving suggestions, I would have no idea what I am doing. It has been a very positive learning experience working with both of them, and I am grateful they encouraged me to continue on with the completion of this degree when I was considering giving up. I would also like to thank my supervisors for giving me the opportunity to at- tend a number of very interesting conferences, where I had many fruitful interactions with other researchers in mine and related fields. I would particularly like to thank Dr. Felty for giving me the idea for the direction of the project undertaken for this dissertation. Working on this project has allowed me to explore a very interesting new perspective on an existing subject. I would like to express my gratitude to all the fellow students and professors who have participated in the Logic and Foundations of Computing research group | it has been a great experience getting to know everyone interested in logic in Ottawa, and their support and enthusiasm for logic has been a constant motivation for continuing my research. I would like to thank Dr. Pieter Hofstra and Dr. Richard iii Acknowledgements iv Blute for organizing so many interesting talks. I also wish to thank Dr. Hofstra for initially suggesting I discuss the possibility of doing doctoral research under Dr. Felty's supervision | I am glad I took this advice. Finally, I would like to express a huge thank you to my parents and sister, who have been unbelievably understanding and supportive over the time of this long and arduous undertaking. I do not believe that I would have been able to finish my thesis if I had moved out of my family's house and lived on my own. I would also like to thank my friends (some of whom refer to me as `the one who is writing her thesis') for accepting my standing excuse of `I have to write my thesis' to get out of anything, and who have consistently believed in the possibility of me one day completing it. Contents 1 Introduction 1 1.1 Methodology . .4 1.2 Traditional Computation . .5 1.3 Choice of Categorical Abstraction Strategy for Traditional Compu- tation . .6 1.4 Choice of Formalism and Category Theory Library . .8 1.5 Plan of the Thesis . 10 1.6 Contributions . 12 2 Turing Category Background 14 2.1 Restriction Categories . 14 2.2 Cartesian Restriction Categories. 20 2.3 Turing Category Structure . 21 2.4 Partial Combinatory Algebras . 26 3 Ranges in Turing Categories 32 3.1 Range Categories . 32 3.2 Ranges and Retractions . 36 3.3 The Beck-Chevalley Condition . 40 3.4 Ranges and PCA's . 42 v CONTENTS vi 4 Formalization and Coq 46 4.1 Formalization . 46 4.2 Logical Framework behind Coq . 48 4.2.1 The Barendregt Lambda Cube . 48 4.2.2 Sorts, Universes and Impredicativity . 51 4.3 The Coq Proof Assistant . 52 4.4 The Category Theory Library . 59 4.4.1 Library Structure . 62 5 Formalizing Abstract Computational Structure 66 5.1 Existing Formalizations Work . 66 5.2 Using Type Classes to Formalize Partiality . 69 5.3 Formalizing Turing Structure . 77 5.4 Proving Results about Turing Categories . 79 5.5 Formalizing Combinatory Complete Structure and the Turing Cat- egory Embedding Result . 86 5.5.1 Full Cartesian Restriction Subcategory of Objects An .... 86 5.5.2 PCAs and Combinatory Completeness . 93 5.5.3 Formal Idempotent Splitting and the Embedding . 97 5.6 Formalizing Range Structure . 104 5.6.1 Range Structure in Restriction Categories . 104 5.6.2 Range Structure in Turing Categories . 109 6 Formalizing Categorical Examples 112 6.1 Restriction Structure Instance . 113 6.2 Formalizing Traditional Computability as a Turing Category . 123 6.2.1 Existing Formalizations of Recursive Maps in Coq . 125 6.2.2 Defining a Category Using the prf Language . 129 CONTENTS vii 6.2.3 Use of Specialized Versions of the Axiom of Choice . 147 6.2.4 Partial Results in Defining Ranges in a Formal PRF Category 149 7 Conclusion 151 7.1 Discussion of Contributions . 151 7.1.1 Formalizing Abstract Computational Structure . 151 7.1.2 Formalizing Categorical Examples . 152 7.1.3 Concluding Remarks . 154 7.2 Future Work . 157 References 164 Chapter 1 Introduction Traditional computation on the natural numbers, as well as the theory of computabil- ity (or recursion) built around it, has historically been the main approach to studying computation in mathematics and computer science, mainly due to its widespread ap- plicability. More recently, there have been several attempts at capturing the essential properties of computation in a broader sense through various mathematical abstrac- tions. Many concepts of traditional recursion and computation theory have begun to be effectively analyzed categorically. This includes early fundamental work of Elgot on flowchart semantics, and its connections with denotational semantics (cf. M. Arbib and E. Manes [36]), to analysis of Church's theories of lambda calculi (both typed and untyped) in cartesian closed categories and associated higher-order categorical logics ([34]). In a series of works of increasing categorical generality, beginning with Longo and Moggi [35], Di Paola and Heller [40] and culminating in recent work of Cockett and Hofstra [15], we see the beginnings of a new and direct categorical development of the foundations of recursion theory. Now, theoretical computer science requires more than just numerical computa- tion: one has increasingly abstract theories of computation over various data types, 1 1. Introduction 2 higher-order computation, computation based on various programming language paradigms, newer paradigms of computation (parallel, probabilistic, quantum) etc. Category theory appears to be both general and expressive enough to be the tool of choice for modeling computation in these newer senses. For an overview of category theory and how it uses objects, arrows and equations to model mathematical and computer science concepts, see [1], as this outside the scope of this thesis. The model we have selected to study in this thesis is a category-theoretic ap- proach to exploring more general instances of computational systems, referred to as \Turing Categories" [15]. Turing categories are currently the most general compu- tational model, because they model both total and partial computation and have multiple non-isomorphic objects. The notion of Turing category provides a robust, abstract framework for discussing computation over a wide range of settings. Our study of the Turing category computation model takes the form of build- ing a formal language description (formalization) of the relevant concepts. A formal language is a set of strings of symbols constrained by rules specific to it. The formal definitions of the model are made up of the symbols representing concepts such as sets or maps, with rules about them; while proofs are essentially sequences of rule applications. The key motivation behind taking this approach is the level of orga- nization, consistency, and guaranteed correctness it provides in working with proofs and definitions for which informal formulations may omit important and interesting details. Turing category theory can be viewed as an (up until now) informally-presented language that can be used to describe (also informally-presented) formal computation. As computation on a physical computer is a formal procedure, it seems natural to verify that a formal description of it formally fits the selected model. This is the motivating idea and the main objective of this work. The insights into traditional and abstract computability this formalization effort yielded are outlined later in this introduction. There is not a huge amount of work done in this direction of research, 1. Introduction 3 none formalizing specifically a category as an instance of an abstract computational model. For more details on the related work, see Section 5.1. In particular, our intent was to first use an existing formal language and category theory library written in that language to specify the mathematical definitions found in the framework of the Turing Category abstract computation model, as well as the abstracted versions of other types of structures naturally occurring in the traditional computation model, then formally prove (the more abstract versions of) a number of the results from traditional recursion theory.
Recommended publications
  • Domain and Range of a Function
    4.1 Domain and Range of a Function How can you fi nd the domain and range of STATES a function? STANDARDS MA.8.A.1.1 MA.8.A.1.5 1 ACTIVITY: The Domain and Range of a Function Work with a partner. The table shows the number of adult and child tickets sold for a school concert. Input Number of Adult Tickets, x 01234 Output Number of Child Tickets, y 86420 The variables x and y are related by the linear equation 4x + 2y = 16. a. Write the equation in function form by solving for y. b. The domain of a function is the set of all input values. Find the domain of the function. Domain = Why is x = 5 not in the domain of the function? 1 Why is x = — not in the domain of the function? 2 c. The range of a function is the set of all output values. Find the range of the function. Range = d. Functions can be described in many ways. ● by an equation ● by an input-output table y 9 ● in words 8 ● by a graph 7 6 ● as a set of ordered pairs 5 4 Use the graph to write the function 3 as a set of ordered pairs. 2 1 , , ( , ) ( , ) 0 09321 45 876 x ( , ) , ( , ) , ( , ) 148 Chapter 4 Functions 2 ACTIVITY: Finding Domains and Ranges Work with a partner. ● Copy and complete each input-output table. ● Find the domain and range of the function represented by the table. 1 a. y = −3x + 4 b. y = — x − 6 2 x −2 −10 1 2 x 01234 y y c.
    [Show full text]
  • Module 1 Lecture Notes
    Module 1 Lecture Notes Contents 1.1 Identifying Functions.............................1 1.2 Algebraically Determining the Domain of a Function..........4 1.3 Evaluating Functions.............................6 1.4 Function Operations..............................7 1.5 The Difference Quotient...........................9 1.6 Applications of Function Operations.................... 10 1.7 Determining the Domain and Range of a Function Graphically.... 12 1.8 Reading the Graph of a Function...................... 14 1.1 Identifying Functions In previous classes, you should have studied a variety basic functions. For example, 1 p f(x) = 3x − 5; g(x) = 2x2 − 1; h(x) = ; j(x) = 5x + 2 x − 5 We will begin this course by studying functions and their properties. As the course progresses, we will study inverse, composite, exponential, logarithmic, polynomial and rational functions. Math 111 Module 1 Lecture Notes Definition 1: A relation is a correspondence between two variables. A relation can be ex- pressed through a set of ordered pairs, a graph, a table, or an equation. A set containing ordered pairs (x; y) defines y as a function of x if and only if no two ordered pairs in the set have the same x-coordinate. In other words, every input maps to exactly one output. We write y = f(x) and say \y is a function of x." For the function defined by y = f(x), • x is the independent variable (also known as the input) • y is the dependent variable (also known as the output) • f is the function name Example 1: Determine whether or not each of the following represents a function. Table 1.1 Chicken Name Egg Color Emma Turquoise Hazel Light Brown George(ia) Chocolate Brown Isabella White Yvonne Light Brown (a) The set of ordered pairs of the form (chicken name, egg color) shown in Table 1.1.
    [Show full text]
  • The Church-Turing Thesis in Quantum and Classical Computing∗
    The Church-Turing thesis in quantum and classical computing∗ Petrus Potgietery 31 October 2002 Abstract The Church-Turing thesis is examined in historical context and a survey is made of current claims to have surpassed its restrictions using quantum computing | thereby calling into question the basis of the accepted solutions to the Entscheidungsproblem and Hilbert's tenth problem. 1 Formal computability The need for a formal definition of algorithm or computation became clear to the scientific community of the early twentieth century due mainly to two problems of Hilbert: the Entscheidungsproblem|can an algorithm be found that, given a statement • in first-order logic (for example Peano arithmetic), determines whether it is true in all models of a theory; and Hilbert's tenth problem|does there exist an algorithm which, given a Diophan- • tine equation, determines whether is has any integer solutions? The Entscheidungsproblem, or decision problem, can be traced back to Leibniz and was successfully and independently solved in the mid-1930s by Alonzo Church [Church, 1936] and Alan Turing [Turing, 1935]. Church defined an algorithm to be identical to that of a function computable by his Lambda Calculus. Turing, in turn, first identified an algorithm to be identical with a recursive function and later with a function computed by what is now known as a Turing machine1. It was later shown that the class of the recursive functions, Turing machines, and the Lambda Calculus define the same class of functions. The remarkable equivalence of these three definitions of disparate origin quite strongly supported the idea of this as an adequate definition of computability and the Entscheidungsproblem is generally considered to be solved.
    [Show full text]
  • Turing Machines
    Syllabus R09 Regulation FORMAL LANGUAGES & AUTOMATA THEORY Jaya Krishna, M.Tech, Asst. Prof. UNIT-VII TURING MACHINES Introduction Until now we have been interested primarily in simple classes of languages and the ways that they can be used for relatively constrainted problems, such as analyzing protocols, searching text, or parsing programs. We begin with an informal argument, using an assumed knowledge of C programming, to show that there are specific problems we cannot solve using a computer. These problems are called “undecidable”. We then introduce a respected formalism for computers called the Turing machine. While a Turing machine looks nothing like a PC, and would be grossly inefficient should some startup company decide to manufacture and sell them, the Turing machine long has been recognized as an accurate model for what any physical computing device is capable of doing. TURING MACHINE: The purpose of the theory of undecidable problems is not only to establish the existence of such problems – an intellectually exciting idea in its own right – but to provide guidance to programmers about what they might or might not be able to accomplish through programming. The theory has great impact when we discuss the problems that are decidable, may require large amount of time to solve them. These problems are called “intractable problems” tend to present greater difficulty to the programmer and system designer than do the undecidable problems. We need tools that will allow us to prove everyday questions undecidable or intractable. As a result we need to rebuild our theory of undecidability, based not on programs in C or another language, but based on a very simple model of a computer called the Turing machine.
    [Show full text]
  • Domain and Range of an Inverse Function
    Lesson 28 Domain and Range of an Inverse Function As stated in the previous lesson, when changing from a function to its inverse the inputs and outputs of the original function are switched. This is because when we find an inverse function, we are taking some original function and solving for its input 푥; so what used to be the input becomes the output, and what used to be the output becomes the input. −11 푓(푥) = Given to the left are the steps 1 + 3푥 to find the inverse of the −ퟏퟏ original function 푓. These 풇 = steps illustrates the changing ퟏ + ퟑ풙 of the inputs and the outputs (ퟏ + ퟑ풙) ∙ 풇 = −ퟏퟏ when going from a function to its inverse. We start out 풇 + ퟑ풙풇 = −ퟏퟏ with 푓 (the output) isolated and 푥 (the input) as part of ퟑ풙풇 = −ퟏퟏ − 풇 the expression, and we end up with 푥 isolated and 푓 as −ퟏퟏ − 풇 the input of the expression. 풙 = ퟑ풇 Keep in mind that once 푥 is isolated, we have basically −11 − 푥 푓−1(푥) = found the inverse function. 3푥 Since the inputs and outputs of a function are switched when going from the original function to its inverse, this means that the domain of the original function 푓 is the range of its inverse function 푓−1. This also means that the range of the original function 푓 is the domain of its inverse function 푓−1. In this lesson we will review how to find an inverse function (as shown above), and we will also review how to find the domain of a function (which we covered in Lesson 18).
    [Show full text]
  • First-Order Logic
    Chapter 5 First-Order Logic 5.1 INTRODUCTION In propositional logic, it is not possible to express assertions about elements of a structure. The weak expressive power of propositional logic accounts for its relative mathematical simplicity, but it is a very severe limitation, and it is desirable to have more expressive logics. First-order logic is a considerably richer logic than propositional logic, but yet enjoys many nice mathemati- cal properties. In particular, there are finitary proof systems complete with respect to the semantics. In first-order logic, assertions about elements of structures can be ex- pressed. Technically, this is achieved by allowing the propositional symbols to have arguments ranging over elements of structures. For convenience, we also allow symbols denoting functions and constants. Our study of first-order logic will parallel the study of propositional logic conducted in Chapter 3. First, the syntax of first-order logic will be defined. The syntax is given by an inductive definition. Next, the semantics of first- order logic will be given. For this, it will be necessary to define the notion of a structure, which is essentially the concept of an algebra defined in Section 2.4, and the notion of satisfaction. Given a structure M and a formula A, for any assignment s of values in M to the variables (in A), we shall define the satisfaction relation |=, so that M |= A[s] 146 5.2 FIRST-ORDER LANGUAGES 147 expresses the fact that the assignment s satisfies the formula A in M. The satisfaction relation |= is defined recursively on the set of formulae.
    [Show full text]
  • Functions and Relations
    Functions and relations • Relations • Set rules & symbols • Sets of numbers • Sets & intervals • Functions • Relations • Function notation • Hybrid functions • Hyperbola • Truncus • Square root • Circle • Inverse functions VCE Maths Methods - Functions & Relations 2 Relations • A relation is a rule that links two sets of numbers: the domain & range. • The domain of a relation is the set of the !rst elements of the ordered pairs (x values). • The range of a relation is the set of the second elements of the ordered pairs (y values). • (The range is a subset of the co-domain of the function.) • Some relations exist for all possible values of x. • Other relations have an implied domain, as the function is only valid for certain values of x. VCE Maths Methods - Functions & Relations 3 Set rules & symbols A = {1, 3, 5, 7, 9} B = {2, 4, 6, 8, 10} C = {2, 3, 5, 7} D = {4,8} (odd numbers) (even numbers) (prime numbers) (multiples of 4) • ∈ : element of a set. 3 ! A • ∉ : not an element of a set. 6 ! A • ∩ : intersection of two sets (in both B and C) B!C = {2} ∪ • : union of two sets (elements in set B or C) B!C = {2,3,4,5,6,7,8,10} • ⊂ : subset of a set (all elements in D are part of set B) D ! B • \ : exclusion (elements in set B but not in set C) B \C = {2,6,10} • Ø : empty set A!B =" VCE Maths Methods - Functions & Relations 4 Sets of numbers • The domain & range of a function are each a subset of a particular larger set of numbers.
    [Show full text]
  • A Theory of Particular Sets, As It Uses Open Formulas Rather Than Sequents
    A Theory of Particular Sets Paul Blain Levy, University of Birmingham June 14, 2019 Abstract ZFC has sentences that quantify over all sets or all ordinals, without restriction. Some have argued that sen- tences of this kind lack a determinate meaning. We propose a set theory called TOPS, using Natural Deduction, that avoids this problem by speaking only about particular sets. 1 Introduction ZFC has long been established as a set-theoretic foundation of mathematics, but concerns about its meaningfulness have often been raised. Specifically, its use of unrestricted quantifiers seems to presuppose an absolute totality of sets. The purpose of this paper is to present a new set theory called TOPS that addresses this concern by speaking only about particular sets. Though weaker than ZFC, it is adequate for a large amount of mathematics. To explain the need for a new theory, we begin in Section 2 by surveying some basic mathematical beliefs and conceptions. Section 3 presents the language of TOPS, and Section 4 the theory itself, using Natural Deduction. Section 5 adapts the theory to allow theorems with free variables. Related work is discussed in Section 6. While TOPS is by no means the first set theory to use restricted quantifiers in order to avoid assuming a totality of sets, it is the first to do so using Natural Deduction, which turns out to be very helpful. This is apparent when TOPS is compared to a previously studied system [26] that proves essentially the same sentences but includes an inference rule that (we argue) cannot be considered truth-preserving.
    [Show full text]
  • Real Valued Functions
    REAL VALUED FUNCTIONS In mathematics, a real-valued function is a function whose domain is a subset D R of the set R of real numbers and the codomain is R; such a function can be represented by a graph in the Cartesian plane. In simplest terms the domain of a function is the set of all values that can be plugged into a function and have the function exist and have a real number for a value. So, for the domain we need to avoid division by zero, square roots of negative numbers, logarithms of zero and logarithms of negative numbers. The range of a function is simply the set of all possible values that a function can take. Continuous functions. A function f is said to be continuous if, roughly speaking, its graph can be drawn without lifting the pen so that such a graph is a curve with no "holes" or "jumps" or “breaks”. Intuitively, that’s easy to understand but we need to make this definition mathematically rigorous. Definition in terms of limits of functions Assume that is a function defined on an interval The function f is continuous at some point c of its domain if the limit of f(x) as x approaches c exists and is equal to f(c). In mathematical notation, this is written as In detail this means three conditions: a) first, f has to be defined at c. b) second, the limit on the left hand side of that equation has to exist. c) third, the value of this limit must equal f(c).
    [Show full text]
  • Preliminaries About Functions
    Preliminaries About Functions Noel DeJarnette and Austin Rochford August 21, 2012 Navigation Symbols 2, "in" or "an element of", 1 f0; 1; 2; 3; 4g ⊂, "subset of" or "contained in", f0; 1; 2; 3; 4g ⊂ N ⊂ Z ⊂ Q ⊂ R (a; b), interval notation for fx 2 R : a < x < bg,(−∞; 1) is all of R. fx 2 R : x ≥ ag, set notation for [a; 1). N, natural numbers, f1; 2; 3; 4;:::g Z, integers, f:::; −4; −3; −2; −1; 0; 1; 2; 3; 4;:::g n p o Q, rational numbers, x 2 R : x = q where p; q 2 Z; q 6= 0 so f takes pts from a set, A, of the real numbers (it could be all of R Functions, a Doodle The functions we will deal with in Calc 1 (and probably all the functions you have seen and will see until Calc 3) send one real number to another real number. so f takes pts from a set, A, of the real numbers (it could be all of R Functions, a Doodle The functions we will deal with in Calc 1 (and probably all the functions you have seen and will see until Calc 3) send one real number to another real number. Functions, a Doodle The functions we will deal with in Calc 1 (and probably all the functions you have seen and will see until Calc 3) send one real number to another real number. so f takes pts from a set, A, of the real numbers (it could be all of R Functions, a Doodle The functions we will deal with in Calc 1 (and probably all the functions you have seen and will see until Calc 3) send one real number to another real number.
    [Show full text]
  • 3.1 Functions a Relation Is a Set of Ordered Pairs (X, Y). Example
    3.1 Functions A relation is a set of ordered pairs (x, y). Example: The set {(1,a), (1, b), (2,b), (3,c), (3, a), (4,a)} is a relation A function is a relation (so, it is the set of ordered pairs) that does not contain two pairs with the same first component. Sometimes we say that a function is a rule (correspondence) that assigns to each element of one set , X, one and only one element of another set, Y. The elements of the set X are often called inputs and the elements of the set Y are called outputs. A function can be visualized as a machine, that takes x as an input and returns y as an output. The domain of a function is the set of all first components, x, in the ordered pairs. The range of a function is the set of all second components, y, in the ordered pairs. We will deal with functions for which both domain and the range are the set (or subset) of real numbers A function can be defined by: (i) Set of ordered pairs Example: {(1,a), (2,b), (3,c), (4,a)} is a function, since there are no two pairs with the same first component. The domain is then the set {1,2,3,4} and the range is the set {a,b,c} Example: {(1,a), (2,b), (1,c), (4,a)} is not a function, since there are two pairs with the first component 1 (ii) Diagram which shows how the elements of two sets are paired.
    [Show full text]
  • The Function Concept
    THE FUNCTION CONCEPT INTRODUCTION. Perhaps the single most important concept in mathematics is that of a function. However, the application and use of this concept goes far beyond “mathematics.” At the heart of the function concept is the idea of a correspondence between two sets of objects. One of the definitions of “function” given in the Random House Dictionary of the English Language is: A factor related to or dependent on other factors: price is a function of supply and demand. Correspondences between two sets of objects (functions) occur frequently in every day life. Examples 1.1: • To each item in supermarket there corresponds a price (item → price). • To each student in a classroom there corresponds the chair that the student occupies (student → chair – i.e., the seating chart for the teacher). • To each income earner in the U.S. in 2003 there corresponds the earner’s federal income tax (income earner → federal income tax). • To each registered student in a university there corresponds a grade-point average (student → GPA). Here are some mathematical examples: • To each real number x there corresponds its square x 2 . • Let S be the set of outcomes of a probability experiment. To each subset (event) E of S there corresponds the probability that E occurs, denoted by P(E). J Each of these correspondences is an example of a function. Definition of “Function”: As suggested by the examples, a function consists of two sets of objects and a correspondence or rule that associates an object in one of the sets with an object in the other set, (item → price) (student → chair) x→ x 2 E→ P(E) and so on.
    [Show full text]