CS486 Applied
Logic Final
Assignment Due Thurs, May 3, 2001
Reading: Please read Stewart & Tall, p. 172-182, Chapter
13.
Exercises:
1.
Write
a careful proof of the stamps theorem from lecture, showing explicit use of
these rules: induction on integers,
recursive definition (reduce),
ÚL, ÚR, "L, "R, arith, and equality.
The equality rules include
those for hd, tl and cons such as
hd(a.t)=a, tl(a.t)=t and l¹[ ]Þ(hd(l).tl(l)=l).
2.
Write
a program to compute the function specified by stamps.
3.
Sketch
a proof of this conjecture:
Define x is_on
l = if x=[] then 0;
else if x=hd(l) then 1;
else x
is_on tl(l).
Show "l:list. "i:int. (1£i£length(l)Þ(index(i,l)
is_on l)=1
4.
Discuss
the issue of how logic can help in specifying programming tasks and how careful
proof helps prevent errors in program design.
`