关于无限集去掉有限子集后基数相等的证明疑问
先给大家说下原问题:
设$S$是无限集,$A\subset S$是有限集,证明$|S| = |S\setminus A|$
下面是给出的标准证明:
原证明内容
令$A = {s_1,\ldots s_n}$。因为$S$是无限集,所以$S\setminus A$肯定非空。先随便选一个$s_{n+1}\in S\setminus A = S\setminus {s_1,\dots, s_n}$。接着,$S\setminus {s_1,\dots , s_{n+1}}$也不会是空集,我们再选$s_{n+2}\in S\setminus {s_1,\ldots, s_{n+1}}$。就这样一直归纳下去,不管$m$是大于等于$n$的哪个数,我们都能构造出$s_{m+1}\in S\setminus {s_1,\dots, s_m}$。
然后定义映射$f : S\to S\setminus A$:对每个$i$,让$f (s_i) = s_{i+n}$;如果$x$不在${s_1, s_2,\ldots}$这个集合里,那$f(x)=x$。按照构造,这个$f$既是单射又是满射,所以$|S|=|S\setminus A|$。
我能看懂的类似具体例子
其实类似的例子我是能完全理解的,比如证明$(0,1)$和$[0,1]$基数相等时,用的映射是:
$$f(x) =
\begin{cases}
\frac{1}{10} & \text{当 } x = 0, \
\frac{1}{100} & \text{当 } x =1.\
\frac{1}{10^{n+2}} & \text{当 } x=\frac{1}{10^n}.\
x, & \text{其他情况}
\end{cases}$$
这里的思路很清晰,$[0,1]$是不可数无限集,我们可以从中拆出一个可数的无限序列,然后把这个序列里的元素递归地往后挪,其他元素保持不动,这样就能构造出双射了。
我的疑惑点
但回到原问题,我就有点懵了:原问题里只说$S$是无限集,没说它是不是可数的啊,那原证明里定义的那个映射到底是怎么工作的?
我自己试了个具体的例子:让$S=\mathbb{N}$(自然数集),$A={1,\ldots,10}$,按照原证明的映射定义,好像这个$f$根本不是单射?另外还有个地方我搞不懂:原问题里$A$明明是有限集,怎么证明里突然出现了$S\setminus {s_1,s_2,\ldots}$这种表述,感觉好像$A$变成无限集了?这一点实在想不通。
备注:内容来源于stack exchange,提问作者LJNG

