Homework #9 1. Show that if a language L and its complement are both recursively enumerable, then L is recursive. Solution: +------------------+ | +---> "yes" | +--+ "yes" /| | +->|M1|------+ | | / +--+ | | / | w----- | | \ +---> "no" | \ +--+ "yes" /| | +->|M2|------+ | | | +--+ | | | +------------------+ Since L, L complement are recursively enumerable, there exist M_L, M_{L complement} accepting them (these machines need not halt when rejecting). Forall w, either w in L or w in L complement, so at least one of M_L, M_{L complement} accepts w. Thus M' always halts and decides whether w in L correctly; thus L is recursive. 2. Translate the following sentences into first-order predicate calculus, drawing symbols from the following lists: Predicates Variables Constants shorter(2 parms) x,y,p1,p2,t1,t2 YOU,Tom,Karen,Wilt taller(2 parms) person(1 parm) equal(2 parms) look_alike(2 parms) people(1 parm) time(1 parm) can_fool_at_time(3 parms) a) Walt is shorter than Wanda. b) There is no one taller than Larry. c) No two people look alike. d) You can fool some of the people all of the time, and all of the people some of the time, but you can't fool all of the people all of the time. Solution: a) shorter(Walt,Wanda) b) forall x [-taller(x,Larry)] OR -exists x [taller(x,Larry)] c) forall x,y [person(x) & person(y) & -equal(x,y) => -look_alike(x,y)] d) exists p1, t1, forall p2, t2 [(time(t2) => (people(p1) ^ can_fool_at_time(You, p1, t2))) ^ (people(p2) => (time(t1) & can_fool_at_time(You, p2, t1))) ^ (time(t1) ^ people(p1)) => -can_fool_at_time(You, p1, t1))] 3. Use truth tables to show that the following sentences are valid and thus that the equivalences hold. a) P ^ (Q ^ R) <=> (P ^ Q) ^ R b) P ^ (Q v R) <=> (P ^ Q) v (P ^ R) c) P <=> Q <=> (P ^ Q) v (-P ^ -Q) Solution: a) P Q R | (Q^R) (P^Q) P^(Q^R) (P^Q)^R LHS<=>RHS ------+-------------------------------------- T T T | T T T T T T T F | F T F F T T F T | F F F F T T F F | F F F F T F T T | T F F F T F T F | F F F F T F F T | F F F F T F F F | F F F F T b) P Q R | (QvR) P^(QvR) (P^Q) (P^R) ((P^Q)v(P^R)) LHS<=>RHS ------+-------------------------------------------------- T T T | T T T T T T T T F | T T T F T T T F T | T T F T T T T F F | F F F F F T F T T | T F F F F T F T F | T F F F F T F F F | F F F F F T c) P Q R | (P<=>Q) (P^Q) -P -Q (-P^-Q) ((P^Q)v(-P^-Q)) LHS<=>RHS ------+------------------------------------------------------ T T T | T T F F F T T T T F | T T F F F T T T F T | F F F T F F T T F F | F F F T F F T F T T | F F T F F F T F T F | F F T F T F T F F T | T F T T T T T F F F | T F T T T T T 4. Look at the following sentences and decide for each if it is valid, unsatisfiable, or satisfiable. Verify with truth tables or using rules given in class. a) Smoke => Smoke b) Smoke => Fire c) ((Smoke ^ Heat) => Fire) <=> ((Smoke => Fire) | (Heat => Fire)) Solution: a) VALID b) SATISFIABLE c) VALID 5. Jones, Smith, and Clark hold the jobs of programmer, software engineer, and manager (not necessarily in that order). Jones owes the programmer $10. The manager's spouse prohibits borrowing money. Smith is not married. Your task is to figure out which person has which job using the equivalence rules and inference rules given in class. Represent all of the facts in propositional logic. You should have nine propositional symbols throughout the entire proof, one to represent each possible person/job assignment. You do not need to represent the relation between owing and borrowing, or between being married and having a spouse; you can just use these to draw conclusions (e.g., from "Smith" is not married" and "the manager's spouse" we know that Smith cannot be the manager, or -SM). A solution will be a conjunction of the form JP ^ SK ^ CM. Justify every conclusion you draw. Solution: /* Represent the fact that each person has one job */ 1) JP v JK v JM 2) SP v SK v SM 3) CP v CK v CM /* Represent the each job is held by one person */ 4) JP v SP v CP 5) JK v SK v CK 6) JM v SM v CM /* Represent the fact that each person has at most one job by a series of disjunctions of the form show below */ 7) {-JP v -JK}, {-JP v -JM}, etc. /* Represent the fact that each job is held by at most one person by a series of disjunctions of the form show below */ 8) {-JP v -SP}, {-JP v -CP}, etc. /* Jones owes the programmer $10 */ 9) -JP /* The manager's spouse prohibits borrowing money */ 10) -JM /* Smith is not married */ 11) -SM /* Resolve 1 and 7 */ 12) JK v JM /* Resolve 4 and 7 */ 13) SP v CP /* Resolve 6 and 7 */ 14) SM v CM /* Resolve 8 and 10 */ 15) JK /* Resolve 9 and 12 */ 16) CM /* Recall from step 8 that we have the disjunction -JKv-SK, resolve this and 15 */ 17) -SK /* Resolve 2 and 11 */ 18) SP v SK /* Resolve 17 and 18 */ 19) SP /* And Introduction applied to 15, 16, and 19 */ 20) JK & SP & CM