CS 342 Quiz 1. Consider the following Prolog program (infer (sum 0 X X)) (infer (sum (s X) Y (s Z)) from (sum X Y Z)) What is printed by each of the following queries? (a) (infer? (sum 0 0 0)) (b) (infer? (sum (s (s 0)) (s (s (s 0))) W) (print (answer: W))) (c) (infer? (sum (s (s 0)) D (s (s (s (s (s 0)))))) (print (answer: D))) 2. Consider adding the following to the above Prolog program (infer (prod 0 X 0) from (print (prod-base X))) (infer (prod (s X) Y Z) from (print (prod-ind X Y Z)) (prod X Y W) (print (prod-W= W)) (sum Y W Z)) What is printed by each of the following queries? (a) (infer? (prod 0 0 0)) (b) (infer? (prod (s (s 0)) (s (s (s 0))) W) (print (answer: W))) (c) (infer? (prod (s (s 0)) D (s (s (s (s (s (s 0))))))) (print (answer: D))) 3. Write a prolog relation find-last such that the query (infer? (find-last (cons 2 (cons 3 nil)) X) (print X)) prints 3.