Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Module 10 Recursive and r.e. language classes –representing solvable and half-solvable problems Proofs of closure properties –for the set of recursive.

Similar presentations


Presentation on theme: "1 Module 10 Recursive and r.e. language classes –representing solvable and half-solvable problems Proofs of closure properties –for the set of recursive."— Presentation transcript:

1 1 Module 10 Recursive and r.e. language classes –representing solvable and half-solvable problems Proofs of closure properties –for the set of recursive (solvable) languages –for the set of r.e. (half-solvable) languages Generic Element proof technique

2 2 RE and REC language classes REC –A solvable language is commonly referred to as a recursive language for historical reasons –REC is defined to be the set of solvable or recursive languages RE –A half-solvable language is commonly referred to as a recursively enumerable or r.e. language –RE is defined to be the set of r.e. or half- solvable languages

3 3 Closure Properties of REC * We now prove REC is closed under two set operations –Set Complement –Set Intersection In these proofs, we try to highlight intuition and common sense

4 4 REC and Set Complement REC EVEN All Languages ODD Even: set of even length strings Is Even solvable (recursive)? Give a program P that solves it. Complement of Even? –Odd: set of odd length strings Is Odd recursive (solvable)? Does this prove REC is closed under set complement? How is the program P’ that solves Odd related to the program P that solves Even?

5 5 P’ Illustration P Input x Yes/No P’ No/Yes

6 6 Code for P’ bool main(string y) { if (P (y)) return no; else return yes; } bool P (string y) /* details deleted; key fact is P is guaranteed to halt on all inputs */

7 7 Set Complement Lemma If L is a solvable language, then L complement is a solvable language Proof –Let L be an arbitrary solvable language First line comes from For all L in REC –Let P be the C++ program which solves L P exists by definition of REC

8 8 –Modify P to form P’ as follows Identical except at very end Complement answer –Yes → No –No → Yes –Program P’ solves L complement Halts on all inputs Answers correctly –Thus L complement is solvable Definition of solvable proof continued

9 9 REC Closed Under Set Union All Languages L1L1 L2L2 L 1 U L 2 REC If L 1 and L 2 are solvable languages, then L 1 U L 2 is a solvable language Proof –Let L 1 and L 2 be arbitrary solvable languages –Let P 1 and P 2 be programs which solve L 1 and L 2, respectively

10 10 REC Closed Under Set Union All Languages L1L1 L2L2 L 1 U L 2 REC –Construct program P 3 from P 1 and P 2 as follows –P 3 solves L 1 U L 2 Halts on all inputs Answers correctly –L 1 U L 2 is solvable

11 11 Yes/No P 3 Illustration P1P1 P2P2 OR Yes/No P3P3

12 12 Code for P 3 bool main(string y) { if (P 1 (y)) return yes; else if (P 2 (y)) return yes; else return no; } bool P 1 (string y) /* details deleted; key fact is P 1 always halts. */ bool P 2 (string y) /* details deleted; key fact is P 2 always halts. */

13 13 Other Closure Properties Unary Operations –Language Reversal –Kleene Star Binary Operations –Set Intersection –Set Difference –Symmetric Difference –Concatenation

14 14 Closure Properties of RE * We now try to prove RE is closed under the same two set operations –Set Union –Set Complement In these proofs –We define a more formal proof methodology –We gain more intuition about the differences between solvable and half-solvable problems

15 15 RE Closed Under Set Union Expressing this closure property as an infinite set of facts –Let L i denote the ith r.e. language L 1 intersect L 1 is in RE L 1 intersect L 2 is in RE... L 2 intersect L 1 is in RE...

16 16 Generic Element or Template Proofs Since there are an infinite number of facts to prove, we cannot prove them all individually Instead, we create a single proof that proves each fact simultaneously I like to call these proofs generic element or template proofs

17 17 Basic Proof Ideas Name your generic objects –For example, L or L 1 or L 2 Only use facts which apply to any relevant objects –For example, there must exist a program P 1 that half-solves L 1 Work from both ends of the proof –The first and last lines are often obvious, and we can often work our way in

18 18 RE Closed Under Set Union L1L1 L2L2 L 1 U L 2 Let L 1 and L 2 be arbitrary r.e. languages L 1 U L 2 is an r.e. language There exist P 1 and P 2 s.t. Y(P 1 )=L 1 and Y(P 2 )=L 2 There exists a program P that half-solves L 1 U L 2 Construct program P 3 from P 1 and P 2 Prove Program P 3 half-solves L 1 U L 2

19 19 What code did we use for P 3 when we worked with solvable languages? Constructing Program P 3 L1L1 L2L2 L 1 U L 2 bool main(string y) { if (P 1 (y)) return yes; else if (P 2 (y)) return yes; else return no;} bool P 1 (string y) /* details deleted; key fact is P 1 always halts. */ bool P 2 (string y) /* details deleted; key fact is P 2 always halts. */ Will this code work for half-solvable languages?

20 20 Proving P 3 Is Correct 2 steps to showing P 3 half-solves L 1 U L 2 –For all x in L 1 U L 2, must show P 3 –For all x not in L 1 U L 2, must show P 3

21 21 P 3 works correctly? –Let x be an arbitrary string in L 1 U L 2 Note, this subproof is a generic element proof –What are the two possibilities for x? x is in L 1 x is in L 2 –What does P 3 do if x is in L 1 ? Does it matter if x is in or not in L 2 ? –What does P 3 do if x is in L 2 ? Does it matter if x is in or not in L 1 ? –Does P 3 work correctly on such x? If not, what strings cause P 3 a problem? bool main(string y) { if (P 1 (y)) return yes; else if (P 2 (y)) return yes; else return no; }

22 22 P 3 works correctly? –Let x be an arbitrary string NOT in L 1 U L 2 Note, this subproof is a generic element proof –x is not in L 1 AND x is not in L 2 –What does P 3 do on x in this case? What does P 1 do on x? What does P 2 do on x? –Does P 3 work correctly on such x? bool main(string y) { if (P 1 (y)) return yes; else if (P 2 (y)) return yes; else return no; }

23 23 Code for Correct P 3 bool main(string y){ if ((P 1 (y) || P 2 (y)) return yes; /* P 1 and P 2 run in parallel (alternating execution) */ else return no; } bool P 1 (string y) /* key fact is P 1 only guaranteed to halt on yes input instances */ bool P 2 (string y) /* key fact is P 2 only guaranteed to halt on yes input instances */

24 24 P 3 works correctly? –Let x be an arbitrary string in L 1 U L 2 Note, this subproof is a generic element proof –What are the two possibilities for x? x is in L 1 x is in L 2 –What does P 3 do if x is in L 1 ? Does it matter if x is in or not in L 2 ? –What does P 3 do if x is in L 2 ? Does it matter if x is in or not in L 1 ? –Does P 3 work correctly on such x? If not, what strings cause P 3 a problem? bool main(string y){ if ((P 1 (y) || P 2 (y)) return yes; else return no; } /* P 1 and P 2 run in parallel */

25 25 First-order logic formulation for statement –RE is closed under set complement What this really means –Let L i denote the ith r.e. language L 1 complement is in RE L 2 complement is in RE... RE and Set complement L LcLc RE

26 26 RE and Set complement Let L be an arbitrary r.e. language L complement is an r.e. language There exists P s.t. Y(P)=L There exists a program P’ which half-solves L complement Construct program P’ from P Prove Program P’ half-solves L complement L LcLc RE

27 27 Constructing P’ What did we do in recursive case? –Run P and then just complement answer at end Accept → Reject Reject → Accept Does this work in this case? –No. Why not? Does this prove that RE is not closed under set complement?

28 28 Other closure properties Unary Operations –Language reversal –Kleene Closure Binary operations –set intersection –concatenation Not closed –Set difference (on practice hw)

29 29 Pseudo Closure Property Lemma: If L and L c are half-solvable, then L is solvable. Question: What about L c ?

30 30 High Level Proof –Let L be an arbitrary language where L and L c are both half-solvable –Let P 1 and P 2 be the programs which half-solve L and L c, respectively –Construct program P 3 from P 1 and P 2 –Argue P 3 solves L –L is solvable

31 31 Constructing P 3 Problem –Both P 1 and P 2 may loop on some input strings, and we need P 3 to halt on all input strings Key Observation –On all input strings, one of P 1 and P 2 is guaranteed to halt. Why?

32 32 Illustration ** L P 1 halts LcLc P 2 halts

33 33 Construction and Proof P 3 ’s Operation –Run P 1 and P 2 in parallel on the input string x until one accepts x Guaranteed to occur given previous argument Also, only one program will accept any string x –IF P 1 is the accepting machine THEN yes ELSE no

34 34 P 3 Illustration P1P1 P2P2 Yes P3P3 Input Yes No

35 35 Code for P 3 * bool main(string y) { parallel-execute(P 1 (y), P 2 (y)) until one returns yes; if (P 1 (y)) return yes; if (P 2 (Y)) return no; } bool P 1 (string y) /* guaranteed to halt on strings in L*/ bool P 2 (string y) /* guaranteed to halt on strings in L c */

36 36 RE and REC REC RE All Languages L LcLc

37 37 RE and REC REC RE All Languages L LcLc LcLc LcLc Are there any languages L in RE - REC?

38 38 RE and REC REC RE All Languages H So where does H c belong? HcHc

39 39 Closure Property Questions Which of the following imply L is solvable given REC is closed under set union? –L 1 U L 2 = L –L 1 U L = L 2 –L U L 2 = L 1 In all cases, L 1 and L 2 are known to be solvable

40 40 Closure Property Questions Which of the following imply L is NOT solvable given REC is closed under set union? –L 1 U L 2 = L –L 1 U L = L 2 –L U L 2 = L 1 In all cases, L 1 is solvable and L 2 is NOT solvable

41 41 Summary Definition of REC and RE Proofs of some closure properties for both language classes –RE more complex Pseudo-closure Property RE is not closed under set complement Proving a language is or is not in a language class using closure properties


Download ppt "1 Module 10 Recursive and r.e. language classes –representing solvable and half-solvable problems Proofs of closure properties –for the set of recursive."

Similar presentations


Ads by Google