Thus developing the skill of counting abstractly specified classes depends partly on developing a few basic forms that one knows how to count, and partly on developing the skill of "translating" new descriptions of classes into these forms one already knows how to count.
If you take a finite range of consecutive integers and add the same number to them all then you get a new collection with the same size as the old one.We will normally indicate such consecutive integer collections either with
Def {i...j} == {k:| ik & kj } or
Def {i..j} == {k:| i k < j } .
The notation
We shall also adopt
We tend to use this standard when precisely expressing facts about class size.
We shall abbreviate
Thm* a,b:. (a ~ b) a = b (corrolary of
Thm* (A ~ m) (A ~ k) m = k )
Here are some theorems about the sizes of these finite integer ranges.
Thm* a,b:. {a..b} ~ (b-a)
Thm* a,b:. {a...b} ~ (1+b-a)
Underlying these theorems is a lemma
Thm* a,b,a',b':. b-a = b'-a' ({a..b} ~ {a'..b'})
which is proved by explicitly giving the functions that map back and forth between
Recall that
Def InvFuns(A;B;f;g) == (x:A. g(f(x)) = x) & (y:B. f(g(y)) = y)
and that one way to give a one-one correspondence is to provide such a pair of inverse functions. The proof of
(x.x+a'-a) {a..b}{a'..b'}
and(x.x+a-a') {a'..b'}{a..b}
then shows these functions to be inverses by simply computing
(x.x+a-a')((x.x+a'-a)(x)) down tox+a'-a+a-a' , which is obviously equal tox , and
(x.x+a'-a)((x.x+a-a')(y)) down toy+a-a'+a'-a , which is obviously equal toy .
Another fundamental method is to reduce a counting problem to
About: