Due Date: Thursday, January 20, 2005
1. In the class, we proved that the function "previous" defined as a-1 if a>0 and 0 otherwise is primitive recursive. Use this result to prove that "subtraction" defined as sub(a,b)=a-b if a>b and 0 otherwise is also primitive recursive.
Answer: Once the function prev(n) (previous) is described as primitive recursive, we can describe the desired function sub as follows: sub(n,0)=n sub(n,m+1)=prev(sub(n,m))2. Prove that in the standard interpretation of Boolean variables (0 means false and 1 means true) logical operations "not", "and", and "or" are primitive recursive functions.
Answer: It is easy to check that and(n,m)=n*m, and we already know that multiplication is a primitive recursive function. To prove that "or" is primitive recursive, we can use the de Morgan rule, according to which or(n,m)=not(and(not(n),not(m))). We already know that "not" and "and" are primitive recursive, so their composition - "or" - is also primitive recursive.