These notes re-present the proofs from lecture.
## Proof 1
```
let easy x y z = x * (y + z)
Theorem: easy 1 20 30 ~ 50
Proof:
easy 1 20 30
~ 50 (by eval)
QED
```
## Proof 2
```
let easy x y z = x * (y + z)
Theorem: easy a b c ~ easy a c b
Proof:
easy a b c
~ a * (b + c) (by eval)
~ a * (c + b) (by math)
~ easy a c b (by eval, symm.)
QED
```
## Proof 3
```
let rec even n =
match n with
| 0 -> true
| 1 -> false
| n -> even (n-2)
Theorem:
for all natural numbers n, even (2*n) ~ true.
Proof: by induction on n
Case: n = 0
Show: even (2*0) ~ true
even (2*0)
~ even 0 (math,congr.)
~ true (eval)
Case: n = k+1, where k >= 0
IH: even (2*k) ~ true
Show: even (2*(k+1)) ~ true
even (2*(k+1))
~ even (2*k+2) (math,congr.)
~ even (2*k+2-2) (eval,k>=0)
~ even (2*k) (math,congr.)
~ true (IH)
QED
```