-<!-- Hint.
-
--->
-
-## Numbers
-
-8. Recall our proposed encoding for the numbers, called "Church's encoding". As we explained last week, it's similar to our proposed encoding of lists in terms of their folds. In last week's homework, you defined `succ` for numbers so encoded. Can you now define `pred` in the Lambca Calculus? Let `pred 0` result in whatever `err` is bound to. This is challenging. For some time theorists weren't sure it could be done. However, in this week's notes we examined one strategy for defining `tail` for our chosen encodings of lists, and given the similarities we explained between lists and numbers, perhaps that will give you some guidance in defining `pred` for numbers.
-
-9. Define `leq` for numbers (that is, ≤) in the Lambda Calculus.
-
-## Combinatorial Logic
-
-Reduce the following forms, if possible:
-
-10. `Kxy`
-11. `KKxy`
-12. `KKKxy`
-13. `SKKxy`
-14. `SIII`
-15. `SII(SII)`
-
-<!-- -->
-
-16. Give Combinatorial Logic combinators (that is, expressed in terms of `S`, `K`, and `I`) that behave like our boolean functions. You'll need combinators for `true`, `false`, `neg`, `and`, `or`, and `xor`.
-
-Using the mapping specified in this week's notes, translate the following lambda terms into combinatory logic:
-
-17. `\x x`
-18. `\x y. x`
-19. `\x y. y`
-20. `\x y. y x`
-21. `\x. x x`
-22. `\x y z. x (y z)`