Logic programming sicp