Download presentation
Presentation is loading. Please wait.
1
Recursively Enumerable Languages
A language is called Recursively Enumerable if there is a Turing Machine that accepts on any input 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 χL is 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).
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.