Math Labs

advertisement
Math Labs
Prove the following theorems.
1. Theorem: If A = {n  NAT | n = 2k for some k}, then |A| = |NAT|
2. Theorem: |A x B| = |A| * |B|
3. Theorem: |NAT| = |INT| = |RAT| = |STRING|
4. Theorem: |NAT x NAT| = |NAT|
5. Theorem: |A  B| <= |A| + |B|
6. Theorem: A  B implies |A| <= |B|
7. Theorem: If A  NAT and A is finite (i.e., |A| < |NAT|), then |NAT – A| = |NAT|
8. Theorem: If A = all binary strings, then |A| = |NAT|
9. Theorem: If A = all valid C programs, then |A| = |NAT|
10. Theorem: If A = all protons in the universe, then |A| <= |NAT|
11. Theorem: |A| < |P(A)| for any set A.
Hints:
1. You can do your proofs in MS Word. You can find mathematical symbols under the
Symbol menu on the INSERT tab:
You can even define shortcut keys for symbols you use a lot, like , , and .
Of course if you don't want to do this, then you can either scan hand written pages, or simply turn
in hand written pages. Be neat, though.
Your proofs should be well written and logical. Use complete sentences and formulas. You may
also assume anything proved in class or earlier theorems proved by you.
Recall that to prove |A| = |B|, you must define a function f: A -> B and then prove that it's a
bijection. To prove |A| <= |B| you only need to prove that f is one-to-one (i.e., different elements of
A get mapped to different elements of B, but maybe some members of B are not outputs of f.
For problems where the proof requires defining a function consider defining the function in Java.
Here's an example: Problem 7.
Download