37.1. if the input is in binary then inserting a "0" at the right end would give 2n. so lets assume the number is in unary (i.e n is represented by n "1"s) we have to insert another n "1"s at the right end of the input. here is an informal way of doing it. use the following tape symbols : X & Y (along with B(blank) & 1) 1. replace all 1s by Xs. 2. look at the leftmost X. replace it by Y & insert a 1 at the first balnk on the right end. 3. keep repeating step 2 till all Xs have been replaced by Ys. 4. we would be having the following configuration YYY...Y111...1 (n Ys followed by n 1s) 5. we are almost there except that we have to get rid of the Ys. so replace all Ys by 1s. 37.2 here is an informal description 1. look for the leftmost non blank symbol. if there isn't any then the input string is an even length palindrome. 2.else remember it & erase it. 3.now look for the rightmost non blank symbol. if there is no such symbol then the input string is an odd length palindrome. else check if the rightmost symbol matches with the symbol we had stored. if not then the string cannot be a palindrome. 4. go back to step 1. 37.9 Nothing easier: note that a Post system can easily simulate a type 0 grammar and hence any context free grammar. One suitable CFG for palindromes is: S -> aSa | bSb | a | b | epsilon that can be converted to a Post system XSY -> XaSaY | XbSbY | XaY | XbY | XY