1 / 8

Recursively Enumerable Languages

Recursively Enumerable Languages. A language is called Recursively Enumerable if there is a Turing Machine that accepts on any input within the language.

kele
Download Presentation

Recursively Enumerable Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Recursively Enumerable Languages • A language is called Recursively Enumerable if there is a Turing Machine that accepts on anyinput within the language. • Reminder: A language is called Recursive if there is a Turing Machine that accepts on any input within the language and rejects on any other input.

  2. Recursive vs Recursively Enumerable Languages • Recursive languages are also called Decidable Languages because a Turing Machine can decide membership in those languages (it can either accept or reject a string). • Recursively Enumerable Languages are also called Recognizable because a Turing Machine can recognize a string in the language (accept it). It might not be able to decide if a string is not in the language since the machine might loop for that input.

  3. Recursive Languages are also Recursively Enumerable Proof: If L is recursive then there is a Turing Machine M that decides membership in L: • M accepts on x if x is in L • M rejects on x if x is not in L By definition, M can recognize strings in the language (accept on those strings).

  4. Partial Predicates • Partial Predicates are predicates defined only for some input. • We use the symbol ↑ to denote that some value is undefined Example:

  5. Recursively Enumerable Languages revisited • Partially Computable Predicates: There is a Turing Machine that halts on the defined values and loops on the undefined. • A language L is Recursively Enumerable if its characteristic function χLis partially computable, i.e. there is a Turing Machine that accepts for χL= 1, rejects for χL = 0 and loops for χL=↑.

  6. Predicate H is partially computable • The partial predicate is partially computable. Run U’, a slightly changed version of the Universal Turing machine U on input (<M>,<M>) (U’ should accept if U accepts or rejects, else it should loop).

  7. A predicate that is not partially computable • Consider the predicate This predicate is not partially computable (Intuition: there is no way that we can design a Turing Machine that halts for input <M> when M loops).

  8. Ī is not partially computable • Assume that there was a Turing Machine Ū that could partially compute Ī. • Idea: Run both machines U’ and Ū on input (<M>,<M>). At some point one of them will halt: • If U’ halts then accept • if Ū halts then reject. • But this decides the H predicate. Contradiction! (Simulation of the concurrent running of U’ and Ū can be performed using a 2-tape TM and performing one step of the computation of U’ and Ū at a time interchangeably).

More Related