### 5.5 Exercises

Exercise  5.1 How does Prolog respond to the following queries?

1. X  =  3*4.
2. X  is  3*4.
3. 4  is  X.
4. X  =  Y.
5. 3  is  1+2.
6. 3  is  +(1,2).
7. 3  is  X+2.
8. X  is  1+2.
9. 1+2  is  1+2.
10. is(X,+(1,2)).
11. 3+2  =  +(3,2).
12. *(7,5)  =  7*5.
13. *(7,+(3,2))  =  7*(3+2).
14. *(7,(3+2))  =  7*(3+2).
15. 7*3+2  =  *(7,+(3,2)).
16. *(7,(3+2))  =  7*(+(3,2)).

Exercise  5.2

1. Define a 2-place predicate increment that holds only when its second argument is an integer one larger than its first argument. For example, increment(4,5) should hold, but increment(4,6) should not.
2. Define a 3-place predicate sum that holds only when its third argument is the sum of the first two arguments. For example, sum(4,5,9) should hold, but sum(4,6,12) should not.

Exercise  5.3 Write a predicate addone/2 whose first argument is a list of integers, and whose second argument is the list of integers obtained by adding 1 to each integer in the first list. For example, the query