introduction to languages and the theory of computation

449 582 0
introduction to languages and the theory of computation

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

[...]... get to models of computation that are capable of producing answers more complicated than yes or no If we restrict ourselves for the time being, then, to computations that are supposed to solve decision problems, or to accept languages, then we can adjust the level of complexity of our model in one of two ways The first is to vary the problems we try to solve or the languages we try to accept, and to. .. − 1 < n! Therefore, p < n!, which is one of the inequalities we need To show the other one, suppose for the sake of contradiction that p ≤ n Then by the definition of factorial, p must be one of the factors of n! However, p cannot be a factor of both n! and n! − 1; if it were, it would be a factor of 1, their difference, and this is impossible because a prime must be bigger than 1 Therefore, the assumption... p and q p or q not p if p then q p only if q p if and only if q Each of these connectives is defined by saying, for each possible combination of truth values of the propositions to which it is applied, what the truth value of the result is The truth value of ¬p is the opposite of the truth value of p For the other four, the easiest way to present this information is to draw a truth table showing the. .. appropriate to the level of the problem Accepting the language of legal algebraic expressions turns out to be moderately difficult; it can’t be done using the first model of computation we discuss, but we will get to it relatively early in the book The second approach is to look at the computations themselves: to say at the outset how sophisticated the steps carried out by the computer are allowed to be, and to. .. f from A to B, we call A the domain of f and B the codomain of f The domain of a function f is the set of values x for which f (x) is defined We will say that two functions f and g are the same if and only if they have the same domain, they have the same codomain, and f (x) = g(x) for every x in the domain In some later chapters it will be convenient to refer to a partial function f from A to B, one... the description of f is its range, which is the set {f (x) | x ∈ A} (a subset of the codomain B) The range of f is the set of elements of the codomain that are actually assigned by f to elements of the domain Definition 1.7 One -to- One and Onto Functions A function f : A → B is one -to- one if f never assigns the same value to two different elements of its domain It is onto if its range is the entire set... contradiction is the opposite, a proposition that is false in every case The proposition p ∨ ¬p is a tautology, and p ∧ ¬p is a contradiction The propositions p and ¬p by themselves, of course, are neither According to the definition of the biconditional connective, p ↔ q is true precisely when p and q have the same truth values One type of tautology, therefore, is a proposition of the form P ↔ Q, where P and Q... problem is in In the last chapter, we discuss a famous open question in this area, and look at some of the ways the question has been approached The fact that these elements (abstract computing devices, languages, and various types of grammars) fit together so nicely into a theory is reason enough to study them—for people who enjoy theory If you’re not one of those people, or have not been up to now, here... every set A, and the formula x = y expresses the fact that (x, y) is an element of the relation The properties of reflexivity, symmetry, and transitivity are familiar properties of equality: Every element of A is equal to itself; for every x and y in A, if x = y, then y = x; and for every x, y, and z, if x = y and y = z, then x = z This relation is the prototypical equivalence relation, and the three properties... blank spaces, and punctuation and other special symbols The basic operation on strings is concatenation If x and y are two strings over an alphabet, the concatenation of x and y is written xy and consists of the symbols of x followed by those of y If x = ab and y = bab, for example, then xy = abbab and yx = babab When we concatenate the null string with another string, the result is just the other string . at the end of the book are considered to be an extension of the copyright page. Library of Congress Cataloging-in-Publication Data Martin, John C. Introduction to languages and the theory of computation. introduction to the theory of computation. After a chapter presenting the mathematical tools that will be used, the book examines models of computation and the associated languages, from the most. verifiability, and an introductory example has been added to clarify the proof of the Cook-Levin theorem, in order to illustrate the idea of the proof. 5. In order to make the book more useful to students,

Ngày đăng: 31/05/2014, 00:58

Từ khóa liên quan

Mục lục

  • Cover

  • Title Page

  • Copyright

  • Contents

  • Preface

  • Introduction

  • CHAPTER 1 Mathematical Tools and Techniques

    • 1.1 Logic and Proofs

    • 1.2 Sets

    • 1.3 Functions and Equivalence Relations

    • 1.4 Languages

    • 1.5 Recursive Definitions

    • 1.6 Structural Induction

    • Exercises

    • CHAPTER 2 Finite Automata and the Languages They Accept

      • 2.1 Finite Automata: Examples and Definitions

      • 2.2 Accepting the Union, Intersection, or Difference of Two Languages

      • 2.3 Distinguishing One String from Another

      • 2.4 The Pumping Lemma

      • 2.5 How to Build a Simple Computer Using Equivalence Classes

      • 2.6 Minimizing the Number of States in a Finite Automaton

      • Exercises

Tài liệu cùng người dùng

Tài liệu liên quan