We assume the reader is familiar with the standard notions and notations of set theory. A particular thing we wish to point out is that in listing the elements of a set, say S = {x 1, ...,x n}, unless said otherwise,we make no assumption that the listed elements are distinct. When wewrite A ⊆ B, we allow the possibility that the sets A and B could be equal.To indicate that A is properly contained in B, we use the notation A ⊂ B. Recall that the Cartesian product A × B = {(a,b) : a ∈ A, b ∈ B}. A function f : A → B is a subset f ⊆ A × B such that (a, b) and (a, b′) in f implies b = b′. As usual, if (a,b) ∈ f we write b = f(a). The set A is called the domain and B the codomain of the function f. The functionf : A → B is called monic if, whenever a, a′ are distinct elements of A, it follows that f(a) ≠ /(a′). The function f is epic if f(A) = B, that iseach b ∈ B is f(a) for some a ∈ A. We call f a bijection if it is bothmonic and epic. Other popular terminology for these last three properties of functions are injective, surjective and bijective. Finally, a binary operation on a set A is a function o : A × A → A. We denote the image o[(a, a′)] by a o a′.