- Logistics: no technology in classroom policy.
- Starting definitions (with Sudoku example)
- key terms: set, cartesian product, function, domain, codomain

- mostly see the syllabus
- first homework released Friday sometime after class
- nobody is on CMS yet; I'll let you know
- please no laptops or other devices in lecture

Definition: a **set** is an unordered collection of **elements**. Two sets are considered the same if they contain the same elements; the order and duplication of elements is ignored. We write *e* ∈ *S* to indicate that *e* is an element of the set *S* (similarly $e \notin S$ indicates that *e* is *not* an element of *S*).

(Note: ∈ ("is an element of", `\in`

in LaTeX) is different from *e* or *E* (the letter e) and *ε* (the greek letter epsilon, LaTeX `\epsilon`

).)

There are many ways to write down sets.

- You can enumerate the elements: {1, 2, 3, 4, 5}
- You can use ellipses if it's clear: {1, 2, . . . , 5}
- You can give a (clear!) english description: "the set of all even natural numbers"
- We'll discuss set comprehension notation next time.

You have written down a set if the reader can unambiguously determine whether a given element is or is not in the set.

Examples:

- {1, 2} = {2, 1} = {1, 2, 2, 1, 2} ≠ {1, 2, 3}
- {1, 2} ≠ {3, 4}
- We let
*N*= {1, 2, . . . 9} for the sudoku example - We defined
*C*as the set of all pairs of numbers from*N*:*C*= {(1, 1), (1, 2), …, (1, 9), (2, 1), (2, 2), …, (2, 9), …, (9, 1), …, (9, 9)}

This set is called the**cartesian product**of*N*with itself, and is written*N*×*N*.

A **function** *f* from a set *A* to a set *B* is an *unambiguous* rule, which gives an element of *B* for *each* element of *A*. *A* is called the **domain** of *f*, while *B* is called the **codomain** of *f*. We often write *f*: *A* → *B* to represent the statement "*f* is a function from *A* to *B*".

As with sets, there are many ways to write down functions. The key rule is that everyone agrees (unambiguously!) what the output is for a given input (the input is the element of the domain, the output is the element of the codomain).

The domain and codomain are different: every element of the domain must have a corresponding element of the codomain, but an element of the codomain may have any number (including 0) of elements of the domain that map to it.

is the set of all pairs (*A*×*B**a*,*b*) with*a*∈*A*and*b*∈*B*.- Set comprehension:
**{**denotes the set of all elements x having the given property. You should read it as "the set of all x such that property holds". For example,*x*∣*p**r**o**p**e**r**t**y*}*N*= {*n*∣*n*is an integer and 1 ≤*n*≤ 9}*A*×*B*= {(*a*,*b*)∣*a*∈*A*and*b*∈*B*}

Function definition:

means "*f*:*x*↦*e**f*is a function, and the value of*f*(*x*) is*e*". Note the difference between → (which gives the domain and codomain) and ↦ which gives an expression for computing the function.Examples:

*i*:*x*↦*x*+ 1*b*:*x*↦*x*/ 3*f*: (*i*,*j*) ↦*i*+*j*/ 2

We started modeling sudoku solutions. Here's where we are so far:

Let the *set of numbers* *N* = {1, 2, …, 9}. Let the set of *cells* *C* = *N* × *N*.

A sudoku solution *f* is a function *f*: *C* → *N* satisfying the following properties:

- For all
*i*,*j*, and*j*ʹ, if*j*≠*j*ʹ then*f*(*i*,*j*) ≠*f*(*i*,*j*ʹ) - For all
*i*,*i*ʹ, and*j*, if*i*≠*i*ʹ then*f*(*i*,*j*) ≠*f*(*i*ʹ,*j*) - For all
*c*_{1}and*c*_{2}∈*C*, if*c*_{1}≠*c*_{2}and*b**o**x*(*c*_{1}) =*b**o**x*(*c*_{2}), then*f*(*c*_{1}) ≠*f*(*c*_{2}).

It's often easier to work with the contrapositives (this is an equivalent definition):

- For all
*i*,*j*, and*j*ʹ, if*f*(*i*,*j*) =*f*(*i*,*j*ʹ) then*j*=*j*ʹ - For all
*i*,*i*ʹ, and*j*, if*f*(*i*,*j*) =*f*(*i*ʹ,*j*) then*i*=*i*ʹ - For all
*c*_{1}and*c*_{2}∈*C*with*b**o**x*(*c*_{1}) =*b**o**x*(*c*_{2}), if*f*(*c*_{1}) =*f*(*c*_{2}) then*c*_{1}=*c*_{2}.

Here *b**o**x* is a function that gives the number of the large box that contains the cell. Here are three styles of definition of *b**o**x*; decide which one you like best (my favorite is the first):

*b**o**x*(*i*,*j*) is the number of the large box that contains the (*i*,*j*) cell, where we number the large 9x9 grids as follows:

1 | 4 | 7 |

2 | 5 | 8 |

3 | 6 | 9 |

*b**o**x*(*i*,*j*) is the (*i*,*j*)th entry in the following table:

1 | 1 | 1 | 4 | 4 | 4 | 7 | 7 | 7 |

1 | 1 | 1 | 4 | 4 | 4 | 7 | 7 | 7 |

1 | 1 | 1 | 4 | 4 | 4 | 7 | 7 | 7 |

2 | 2 | 2 | 5 | 5 | 5 | 8 | 8 | 8 |

2 | 2 | 2 | 5 | 5 | 5 | 8 | 8 | 8 |

2 | 2 | 2 | 5 | 5 | 5 | 8 | 8 | 8 |

3 | 3 | 3 | 6 | 6 | 6 | 9 | 9 | 9 |

3 | 3 | 3 | 6 | 6 | 6 | 9 | 9 | 9 |

3 | 3 | 3 | 6 | 6 | 6 | 9 | 9 | 9 |

- (using integer division)
*b**o**x*:*C*→*N*given by*b**o**x*: (*i*,*j*) ↦ 1 + ⌊(*i*− 1) / 3⌋ + 3 ⋅ (1 + ⌊(*j*− 1) / 3⌋)

As you play sudoku, you are generating in your head lots of proofs. This is overkill, but let's write down one such proof as an example of proving something from definitions.

Suppose we are working on the following puzzle:

1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | |

It is clear that the 4th entry of the 5th row must be 5. Let's prove it.

**Claim**: if *f* is a sudoku solution and if *f*(5, 1) = 1, and *f*(5, 2) = 2, and *f*(5, 3) = 3, and (note I'm not assuming anything about *f*(5, 4)) *f*(5, 5) = 5, and *f*(5, 6) = 6, and so on,

then *f*(5, 4) = 4.

**Proof**: First, we can summarize the assumptions: for all *k* ≠ 4, *f*(5, *k*) = *k*. Now, we can proceed to prove the claim by contradiction.

Suppose that *f*(5, 4) ≠ 4. Well, we know *f*(5, 4) = *k* for some *k*; and we've assumed that *k* ≠ 4. Therefore we can apply the assumption to conclude that *f*(5, *k*) = *k*. Since *f* is assumed to be a sudoku solution, it must satisfy rule 1, and therefore since *f*(5, 4) = *f*(5, *k*), we conclude that 4 = *k*. But this is nonsense: we've assumed that *k* ≠ 4!

Therefore, our assumption that *f*(5, 4) ≠ 4 must have been incorrect.