An Introduction to Formal Language Theory That Integrates Experimentation and Proof

Total Page:16

File Type:pdf, Size:1020Kb

An Introduction to Formal Language Theory That Integrates Experimentation and Proof An Introduction to Formal Language Theory that Integrates Experimentation and Proof Allen Stoughton Kansas State University Draft of Fall 2004 Copyright °c 2003{2004 Allen Stoughton Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sec- tions, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". The LATEX source of this book and associated lecture slides, and the distribution of the Forlan toolset are available on the WWW at http: //www.cis.ksu.edu/~allen/forlan/. Contents Preface v 1 Mathematical Background 1 1.1 Basic Set Theory . 1 1.2 Induction Principles for the Natural Numbers . 11 1.3 Trees and Inductive De¯nitions . 16 2 Formal Languages 21 2.1 Symbols, Strings, Alphabets and (Formal) Languages . 21 2.2 String Induction Principles . 26 2.3 Introduction to Forlan . 34 3 Regular Languages 44 3.1 Regular Expressions and Languages . 44 3.2 Equivalence and Simpli¯cation of Regular Expressions . 54 3.3 Finite Automata and Labeled Paths . 78 3.4 Isomorphism of Finite Automata . 86 3.5 Algorithms for Checking Acceptance and Finding Accepting Paths . 94 3.6 Simpli¯cation of Finite Automata . 99 3.7 Proving the Correctness of Finite Automata . 103 3.8 Empty-string Finite Automata . 114 3.9 Nondeterministic Finite Automata . 120 3.10 Deterministic Finite Automata . 129 3.11 Closure Properties of Regular Languages . 145 3.12 Equivalence-testing and Minimization of Deterministic Finite Automata . 174 3.13 The Pumping Lemma for Regular Languages . 193 3.14 Applications of Finite Automata and Regular Expressions . 199 ii CONTENTS iii 4 Context-free Languages 204 4.1 (Context-free) Grammars, Parse Trees and Context-free Lan- guages . 204 4.2 Isomorphism of Grammars . 213 4.3 A Parsing Algorithm . 215 4.4 Simpli¯cation of Grammars . 219 4.5 Proving the Correctness of Grammars . 221 4.6 Ambiguity of Grammars . 225 4.7 Closure Properties of Context-free Languages . 227 4.8 Converting Regular Expressions and Finite Automata to Grammars . 230 4.9 Chomsky Normal Form . 233 4.10 The Pumping Lemma for Context-free Languages . 236 5 Recursive and R.E. Languages 242 5.1 A Universal Programming Language, and Recursive and Re- cursively Enumerable Languages . 243 5.2 Closure Properties of Recursive and Recursively Enumerable Languages . 246 5.3 Diagonalization and Undecidable Problems . 249 A GNU Free Documentation License 253 Bibliography 261 Index 263 List of Figures 1.1 Example Diagonalization Table for Cardinality Proof . 9 3.1 Regular Expression to FA Conversion Example . 151 3.2 DFA Accepting AllLongStutter . 194 4.1 Visualization of Proof of Pumping Lemma for Context-free Languages . 239 5.1 Example Diagonalization Table for R.E. Languages . 249 iv Preface Background Since the 1930s, the subject of formal language theory, also known as au- tomata theory, has been developed by computer scientists, linguists and mathematicians. (Formal) Languages are set of strings over ¯nite sets of symbols, called alphabets, and various ways of describing such languages have been developed and studied, including regular expressions (which \gen- erate" languages), ¯nite automata (which \accept" languages), grammars (which \generate" languages) and Turing machines (which \accept" lan- guages). For example, the set of identi¯ers of a given programming language is a formal language|one that can be described by a regular expression or a ¯nite automaton. And, the set of all strings of tokens that are generated by a programming language's grammar is another example of a formal language. Because of its many applications to computer science, e.g., to compiler construction, most computer science programs o®er both undergraduate and graduate courses in this subject. Many of the results of formal language theory are proved constructively, using algorithms that are useful in practice. In typical courses on formal language theory, students apply these algorithms to toy examples by hand, and learn how they are used in applications. But they are not able to experiment with them on a larger scale. Although much can be achieved by a paper-and-pencil approach to the subject, students would obtain a deeper understanding of the subject if they could experiment with the algorithms of formal language theory us- ing computer tools. Consider, e.g., a typical exercise of a formal language theory class in which students are asked to synthesize an automaton that accepts some language, L. With the paper-and-pencil approach, the stu- dent is obliged to build the machine by hand, and then (perhaps) prove that it is correct. But, given the right computer tools, another approach would be possible. First, the student could try to express L in terms of simpler languages, making use of various language operations (union, inter- v vi section, di®erence, concatenation, closure). He or she could then synthesize automata accepting the simpler languages, enter these machines into the system, and then combine these machines using operations corresponding to the language operations used to express L. With some such exercises, a student could solve the exercise in both ways, and could compare the results. Other exercises of this type could only be solved with machine support. Integrating Experimentation and Proof Over the past several years, I have been designing and developing a com- puter toolset, called Forlan, for experimenting with formal languages. For- lan is implemented in the functional programming language Standard ML [MTHM97, Pau96], a language whose notation and concepts are similar to those of mathematics. Forlan is used interactively. In fact, a Forlan session is simply a Standard ML session in which the Forlan modules are pre-loaded. Users are able to extend Forlan by de¯ning ML functions. In Forlan, the usual objects of formal language theory|automata, reg- ular expressions, grammars, labeled paths, parse trees, etc.|are de¯ned as abstract types, and have concrete syntax. The standard algorithms of formal language theory are implemented in Forlan, including conversions between di®erent kinds of automata and grammars, the usual operations on automata and grammars, equivalence testing and minimization of deter- ministic ¯nite automata, etc. Support for the variant of the programming language Lisp that we use (instead of Turing machines) as a universal pro- gramming language is planned. While developing Forlan, I have also been writing lectures notes on for- mal language theory that are based around Forlan, and this book is the outgrowth of those notes. I am attempting to keep the conceptual and no- tational distance between the textbook and toolset as small as possible. The book treats each concept or algorithm both theoretically, especially using proof, and through experimentation, using Forlan. Special proofs that are carried out assuming the correctness of Forlan's implementation are labeled \[Forlan]", and theorems that are only proved in this way are also so-labeled. Readers of this book are assumed to have a signi¯cant amount of expe- rience reading and writing informal mathematical proofs, of the kind one ¯nds in mathematics books. This experience could have been gained, e.g., in courses on discrete mathematics, logic or set theory. The core sections of the book assume no previous knowledge of Standard ML. Eventually, ad- vanced sections covering the implementation of Forlan will be written, and vii these sections will assume the kind of familiarity with Standard ML that could be obtained by reading [Pau96] or [Ull98]. Outline of the Book The book consists of ¯ve chapters. Chapter 1, Mathematical Background, consists of the material on set theory, induction principles for the natural numbers, and trees and inductive de¯nitions that is required in the remain- ing chapters. In Chapter 2, Formal Languages, we say what symbols, strings, alpha- bets and (formal) languages are, introduce and show how to use several string induction principles, and give an introduction to the Forlan toolset. The remaining three chapters introduce and study more restricted sets of languages. In Chapter 3, Regular Languages, we study regular expressions and lan- guages, four kinds of ¯nite automata, algorithms for processing and convert- ing between regular expressions and ¯nite automata, properties of regular languages, and applications of regular expressions and ¯nite automata to searching in text ¯les and lexical analysis. In Chapter 4, Context-free Languages, we study context-free grammars and languages, algorithms for processing grammars and for converting regu- lar expressions and ¯nite automata to grammars, and properties of context- free languages. It turns out that the set of all context-free languages is a proper superset of the set of all regular languages. Finally, in Chapter 5, Recursive and Recursively Enumerable Languages, we study a universal programming language based on Lisp, which we use to de¯ne the recursive and recursively enumerable languages. We study algo- rithms for processing programs and for converting grammars to programs, and properties of recursive and recursively enumerable languages. It turns out that the context-free languages are a proper subset of the recursive lan- guages, that the recursive languages are a proper subset of the recursively enumerable languages, and that there are languages that are not recursively enumerable. Furthermore, there are problems, like the halting problem (the problem of determining whether a program P halts when run on an input w), or the problem of determining if two grammars generate the same language, that can't be solved by programs. viii Further Reading and Related Work This book covers the core material that is typically presented in an under- graduate course on formal language theory. On the other hand, a typical textbook on formal language theory covers much more of the subject than we do.
Recommended publications
  • COMPSCI 501: Formal Language Theory Insights on Computability Turing Machines Are a Model of Computation Two (No Longer) Surpris
    Insights on Computability Turing machines are a model of computation COMPSCI 501: Formal Language Theory Lecture 11: Turing Machines Two (no longer) surprising facts: Marius Minea Although simple, can describe everything [email protected] a (real) computer can do. University of Massachusetts Amherst Although computers are powerful, not everything is computable! Plus: “play” / program with Turing machines! 13 February 2019 Why should we formally define computation? Must indeed an algorithm exist? Back to 1900: David Hilbert’s 23 open problems Increasingly a realization that sometimes this may not be the case. Tenth problem: “Occasionally it happens that we seek the solution under insufficient Given a Diophantine equation with any number of un- hypotheses or in an incorrect sense, and for this reason do not succeed. known quantities and with rational integral numerical The problem then arises: to show the impossibility of the solution under coefficients: To devise a process according to which the given hypotheses or in the sense contemplated.” it can be determined in a finite number of operations Hilbert, 1900 whether the equation is solvable in rational integers. This asks, in effect, for an algorithm. Hilbert’s Entscheidungsproblem (1928): Is there an algorithm that And “to devise” suggests there should be one. decides whether a statement in first-order logic is valid? Church and Turing A Turing machine, informally Church and Turing both showed in 1936 that a solution to the Entscheidungsproblem is impossible for the theory of arithmetic. control To make and prove such a statement, one needs to define computability. In a recent paper Alonzo Church has introduced an idea of “effective calculability”, read/write head which is equivalent to my “computability”, but is very differently defined.
    [Show full text]
  • Use Formal and Informal Language in Persuasive Text
    Author’S Craft Use Formal and Informal Language in Persuasive Text 1. Focus Objectives Explain Using Formal and Informal Language In this mini-lesson, students will: Say: When I write a persuasive letter, I want people to see things my way. I use • Learn to use both formal and different kinds of language to gain support. To connect with my readers, I use informal language in persuasive informal language. Informal language is conversational; it sounds a lot like the text. way we speak to one another. Then, to make sure that people believe me, I also use formal language. When I use formal language, I don’t use slang words, and • Practice using formal and informal I am more objective—I focus on facts over opinions. Today I’m going to show language in persuasive text. you ways to use both types of language in persuasive letters. • Discuss how they can apply this strategy to their independent writing. Model How Writers Use Formal and Informal Language Preparation Display the modeling text on chart paper or using the interactive whiteboard resources. Materials Needed • Chart paper and markers 1. As the parent of a seventh grader, let me assure you this town needs a new • Interactive whiteboard resources middle school more than it needs Old Oak. If selling the land gets us a new school, I’m all for it. Advanced Preparation 2. Last month, my daughter opened her locker and found a mouse. She was traumatized by this experience. She has not used her locker since. If you will not be using the interactive whiteboard resources, copy the Modeling Text modeling text and practice text onto chart paper prior to the mini-lesson.
    [Show full text]
  • Chapter 6 Formal Language Theory
    Chapter 6 Formal Language Theory In this chapter, we introduce formal language theory, the computational theories of languages and grammars. The models are actually inspired by formal logic, enriched with insights from the theory of computation. We begin with the definition of a language and then proceed to a rough characterization of the basic Chomsky hierarchy. We then turn to a more de- tailed consideration of the types of languages in the hierarchy and automata theory. 6.1 Languages What is a language? Formally, a language L is defined as as set (possibly infinite) of strings over some finite alphabet. Definition 7 (Language) A language L is a possibly infinite set of strings over a finite alphabet Σ. We define Σ∗ as the set of all possible strings over some alphabet Σ. Thus L ⊆ Σ∗. The set of all possible languages over some alphabet Σ is the set of ∗ all possible subsets of Σ∗, i.e. 2Σ or ℘(Σ∗). This may seem rather simple, but is actually perfectly adequate for our purposes. 6.2 Grammars A grammar is a way to characterize a language L, a way to list out which strings of Σ∗ are in L and which are not. If L is finite, we could simply list 94 CHAPTER 6. FORMAL LANGUAGE THEORY 95 the strings, but languages by definition need not be finite. In fact, all of the languages we are interested in are infinite. This is, as we showed in chapter 2, also true of human language. Relating the material of this chapter to that of the preceding two, we can view a grammar as a logical system by which we can prove things.
    [Show full text]
  • Axiomatic Set Teory P.D.Welch
    Axiomatic Set Teory P.D.Welch. August 16, 2020 Contents Page 1 Axioms and Formal Systems 1 1.1 Introduction 1 1.2 Preliminaries: axioms and formal systems. 3 1.2.1 The formal language of ZF set theory; terms 4 1.2.2 The Zermelo-Fraenkel Axioms 7 1.3 Transfinite Recursion 9 1.4 Relativisation of terms and formulae 11 2 Initial segments of the Universe 17 2.1 Singular ordinals: cofinality 17 2.1.1 Cofinality 17 2.1.2 Normal Functions and closed and unbounded classes 19 2.1.3 Stationary Sets 22 2.2 Some further cardinal arithmetic 24 2.3 Transitive Models 25 2.4 The H sets 27 2.4.1 H - the hereditarily finite sets 28 2.4.2 H - the hereditarily countable sets 29 2.5 The Montague-Levy Reflection theorem 30 2.5.1 Absoluteness 30 2.5.2 Reflection Theorems 32 2.6 Inaccessible Cardinals 34 2.6.1 Inaccessible cardinals 35 2.6.2 A menagerie of other large cardinals 36 3 Formalising semantics within ZF 39 3.1 Definite terms and formulae 39 3.1.1 The non-finite axiomatisability of ZF 44 3.2 Formalising syntax 45 3.3 Formalising the satisfaction relation 46 3.4 Formalising definability: the function Def. 47 3.5 More on correctness and consistency 48 ii iii 3.5.1 Incompleteness and Consistency Arguments 50 4 The Constructible Hierarchy 53 4.1 The L -hierarchy 53 4.2 The Axiom of Choice in L 56 4.3 The Axiom of Constructibility 57 4.4 The Generalised Continuum Hypothesis in L.
    [Show full text]
  • Languages and Regular Expressions Lecture 2
    Languages and Regular expressions Lecture 2 1 Strings, Sets of Strings, Sets of Sets of Strings… • We defined strings in the last lecture, and showed some properties. • What about sets of strings? CS 374 2 Σn, Σ*, and Σ+ • Σn is the set of all strings over Σ of length exactly n. Defined inductively as: – Σ0 = {ε} – Σn = ΣΣn-1 if n > 0 • Σ* is the set of all finite length strings: Σ* = ∪n≥0 Σn • Σ+ is the set of all nonempty finite length strings: Σ+ = ∪n≥1 Σn CS 374 3 Σn, Σ*, and Σ+ • |Σn| = ?|Σ |n • |Øn| = ? – Ø0 = {ε} – Øn = ØØn-1 = Ø if n > 0 • |Øn| = 1 if n = 0 |Øn| = 0 if n > 0 CS 374 4 Σn, Σ*, and Σ+ • |Σ*| = ? – Infinity. More precisely, ℵ0 – |Σ*| = |Σ+| = |N| = ℵ0 no longest • How long is the longest string in Σ*? string! • How many infinitely long strings in Σ*? none CS 374 5 Languages 6 Language • Definition: A formal language L is a set of strings 1 ε 0 over some finite alphabet Σ or, equivalently, an 2 0 0 arbitrary subset of Σ*. Convention: Italic Upper case 3 1 1 letters denote languages. 4 00 0 5 01 1 • Examples of languages : 6 10 1 – the empty set Ø 7 11 0 8 000 0 – the set {ε}, 9 001 1 10 010 1 – the set {0,1}* of all boolean finite length strings. 11 011 0 – the set of all strings in {0,1}* with an odd number 12 100 1 of 1’s.
    [Show full text]
  • The Formal Language of Recursion Author(S): Yiannis N
    The Formal Language of Recursion Author(s): Yiannis N. Moschovakis Source: The Journal of Symbolic Logic, Vol. 54, No. 4 (Dec., 1989), pp. 1216-1252 Published by: Association for Symbolic Logic Stable URL: http://www.jstor.org/stable/2274814 Accessed: 12/10/2008 23:57 Your use of the JSTOR archive indicates your acceptance of JSTOR's Terms and Conditions of Use, available at http://www.jstor.org/page/info/about/policies/terms.jsp. JSTOR's Terms and Conditions of Use provides, in part, that unless you have obtained prior permission, you may not download an entire issue of a journal or multiple copies of articles, and you may use content in the JSTOR archive only for your personal, non-commercial use. Please contact the publisher regarding any further use of this work. Publisher contact information may be obtained at http://www.jstor.org/action/showPublisher?publisherCode=asl. Each copy of any part of a JSTOR transmission must contain the same copyright notice that appears on the screen or printed page of such transmission. JSTOR is a not-for-profit organization founded in 1995 to build trusted digital archives for scholarship. We work with the scholarly community to preserve their work and the materials they rely upon, and to build a common research platform that promotes the discovery and use of these resources. For more information about JSTOR, please contact [email protected]. Association for Symbolic Logic is collaborating with JSTOR to digitize, preserve and extend access to The Journal of Symbolic Logic. http://www.jstor.org THE JOURNAL OF SYMBOLIC LoGic Volume 54, Number 4, Dec.
    [Show full text]
  • First-Order Logic in a Nutshell Syntax
    First-Order Logic in a Nutshell 27 numbers is empty, and hence cannot be a member of itself (otherwise, it would not be empty). Now, call a set x good if x is not a member of itself and let C be the col- lection of all sets which are good. Is C, as a set, good or not? If C is good, then C is not a member of itself, but since C contains all sets which are good, C is a member of C, a contradiction. Otherwise, if C is a member of itself, then C must be good, again a contradiction. In order to avoid this paradox we have to exclude the collec- tion C from being a set, but then, we have to give reasons why certain collections are sets and others are not. The axiomatic way to do this is described by Zermelo as follows: Starting with the historically grown Set Theory, one has to search for the principles required for the foundations of this mathematical discipline. In solving the problem we must, on the one hand, restrict these principles sufficiently to ex- clude all contradictions and, on the other hand, take them sufficiently wide to retain all the features of this theory. The principles, which are called axioms, will tell us how to get new sets from already existing ones. In fact, most of the axioms of Set Theory are constructive to some extent, i.e., they tell us how new sets are constructed from already existing ones and what elements they contain. However, before we state the axioms of Set Theory we would like to introduce informally the formal language in which these axioms will be formulated.
    [Show full text]
  • First-Order Logic
    Chapter 10 First-Order Logic 10.1 Overview First-Order Logic is the calculus one usually has in mind when using the word ‘‘logic’’. It is expressive enough for all of mathematics, except for those concepts that rely on a notion of construction or computation. However, dealing with more advanced concepts is often somewhat awkward and researchers often design specialized logics for that reason. Our account of first-order logic will be similar to the one of propositional logic. We will present ² The syntax, or the formal language of first-order logic, that is symbols, formulas, sub-formulas, formation trees, substitution, etc. ² The semantics of first-order logic ² Proof systems for first-order logic, such as the axioms, rules, and proof strategies of the first-order tableau method and refinement logic ² The meta-mathematics of first-order logic, which established the relation between the semantics and a proof system In many ways, the account of first-order logic is a straightforward extension of propositional logic. One must, however, be aware that there are subtle differences. 10.2 Syntax The syntax of first-order logic is essentially an extension of propositional logic by quantification 8 and 9. Propositional variables are replaced by n-ary predicate symbols (P , Q, R) which may be instantiated with either variables (x, y, z, ...) or parameters (a, b, ...). Here is a summary of the most important concepts. 101 102 CHAPTER 10. FIRST-ORDER LOGIC (1) Atomic formulas are expressions of the form P c1::cn where P is an n-ary predicate symbol and the ci are variables or parameters.
    [Show full text]
  • A QUICK INTRODUCTION to BASIC SET THEORY This Note Is Intended
    A QUICK INTRODUCTION TO BASIC SET THEORY ANUSH TSERUNYAN This note is intended to quickly introduce basic notions in set theory to (undergraduate) students in mathematics not necessarily specializing in logic, thus requiring no background. It uses the sections on well-orderings, ordinals and cardinal arithmetic of [Kun83], as well as some parts from [Mos06]. Contents 1. Zermelo–Fraenkel set theory 2 2. Well-orderings 6 3. Ordinals 7 4. Transfinite induction 9 5. The set of natural numbers 10 6. Equinumerosity 11 7. Finite/infinite sets and Axiom of Choice 14 8. Cardinals and cardinality 16 9. Uncountable cardinals and the Continuum Hypothesis 16 10. Cofinality and Konig˝ ’s theorem 17 11. Classes 18 Exercises 19 References 21 1 1. Zermelo–Fraenkel set theory The language of ZFC. ZF stands for Zermelo–Fraenkel set theory and ZFC stands for Zermelo– Fraenkel set theory with Choice (the latter being an extra axiom added to ZF). To describe the axioms of ZFC we need to fix a language (formally speaking, a first order logic language). The language of ZF (same for ZFC) has only one special symbol, namely the binary relation symbol 2, in addition to the standard symbols that every other first order language has: the symbols =; :; ^; _; !; 8; 9; (; ) and variables x0; x1; x2; :::. To keep things informal and easy to read, we also use other letters such as x; y; z or even A, B, C, F for variables, as well as extra symbols like ,; <; $, etc. Using these symbols and variables we form statements about sets such as 8x(x = x), 9x(x , x), 9x(x 2 y ^ y < z).
    [Show full text]
  • Formal Language Theory by Kolmogorov Complexity (Preliminary Version)
    A New Approach to Formal Language Theory by Kolmogorov Complexity (Preliminary Version) Ming Li York University, Dq;artment of Computer Science North York, Ontario M3J IP3, Canada Paul M.B. Vitanyi Centrum voor Wiskunde en Infonnatica Kruislaan 413, 1098 SJ Amsterdam, The Netherlands and Universiteit van Amsterdam, Faculteit Wiskunde en Informatica ABSTRACT We introduce Kolmogorov complexity as a new technique in Formal Language Theory. We give an alternative for pumping lemma(s) and a new characterization for regular languages. For the separation of deterministic contextfree languages and contextfree languages no pumping lemmas or any other general method was known. We give a first general technique to separate these classes, and illustrate its use on four examples previously requiring labourous ad hoe methods. The approach is also successful at the high end of the Chomsky hierarchy since one can quantify nonrecursiveness in terms of Kolmogorov complexity. We also give a new proof, using Kolmogorov complexity, of Yao and Rivest's result that k + I heads are better than k heads. 1. Introduction It is feasible to reconstruct parts of Formal Language Theory using algorithmic information theory (Kolmogorov complexity). We prove theorems on how to use Kolmogorov complexity as a concrete, powerful, tool. We do not just want to intro­ duce fancy mathematics; our goal is to help our readers do proofs in the most essential, usually easiest, sometimes even obvious ways. In this paper it is only important to us to demonstrate that the application of Kolmogorov complexity in the targeted area is not restricted to trivialities. The proofs of the theorems in this paper may not be easy.
    [Show full text]
  • Chapters Are Organised Thema� Cally to Cover: Wri� Ng and Solving Equa� Ons, Geometric Construc� On, Coordinates and Complex Numbers, A� Tudes to the Use
    E Making up Numbers A History of Invention in Mathematics KKEHARD EKKEHARD KOPP Making up Numbers: A History of Inventi on in Mathemati cs off ers a detailed but K Making up Numbers accessible account of a wide range of mathema� cal ideas. Star� ng with elementary OPP concepts, it leads the reader towards aspects of current mathema� cal research. A History of Invention in Mathematics Ekkehard Kopp adopts a chronological framework to demonstrate that changes in our understanding of numbers have o� en relied on the breaking of long-held conven� ons, making way for new inven� ons that provide greater clarity and widen mathema� cal horizons. Viewed from this historical perspec� ve, mathema� cal abstrac� on emerges as neither mysterious nor immutable, but as a con� ngent, developing human ac� vity. Chapters are organised thema� cally to cover: wri� ng and solving equa� ons, geometric construc� on, coordinates and complex numbers, a� tudes to the use of ‘infi nity’ in mathema� cs, number systems, and evolving views of the role of M axioms. The narra� ve moves from Pythagorean insistence on posi� ve mul� ples to gradual acceptance of nega� ve, irra� onal and complex numbers as essen� al tools in quan� ta� ve analysis. AKING Making up Numbers will be of great interest to undergraduate and A-level students of mathema� cs, as well as secondary school teachers of the subject. By virtue of UP its detailed treatment of mathema� cal ideas, it will be of value to anyone seeking N to learn more about the development of the subject.
    [Show full text]
  • The Representational Foundations of Computation
    The Representational Foundations of Computation Michael Rescorla Abstract: Turing computation over a non-linguistic domain presupposes a notation for the domain. Accordingly, computability theory studies notations for various non-linguistic domains. It illuminates how different ways of representing a domain support different finite mechanical procedures over that domain. Formal definitions and theorems yield a principled classification of notations based upon their computational properties. To understand computability theory, we must recognize that representation is a key target of mathematical inquiry. We must also recognize that computability theory is an intensional enterprise: it studies entities as represented in certain ways, rather than entities detached from any means of representing them. 1. A COMPUTATIONAL PERSPECTIVE ON REPRESENTATION Intuitively speaking, a function is computable when there exists a finite mechanical procedure that calculates the function’s output for each input. In the 1930s, logicians proposed rigorous mathematical formalisms for studying computable functions. The most famous formalism is the Turing machine: an abstract mathematical model of an idealized computing device with unlimited time and storage capacity. The Turing machine and other computational formalisms gave birth to computability theory: the mathematical study of computability. 2 A Turing machine operates over strings of symbols drawn from a finite alphabet. These strings comprise a formal language. In some cases, we want to study computation over the formal language itself. For example, Hilbert’s Entscheidungsproblem requests a uniform mechanical procedure that determines whether a given formula of first-order logic is valid. Items drawn from a formal language are linguistic types, whose tokens we can inscribe, concatenate, and manipulate [Parsons, 2008, pp.
    [Show full text]