Natural Numbers
\(\mathbb{N}\)
2020 James B. Wilson
Colorado State University
Natural numbers count from 0
Summarized compactly in what is called "Backus-Naur Form (BNF) Grammar":
\[\mathbb{N} = 0 \mid S(n)\]
(Elimination etc. will come later.)
\[\vdash \mathbb{N}:type\quad (F_{\mathbb{N}})\]
\[\vdash 0:\mathbb{N}\quad(I_{\mathbb{N}}0)\qquad \frac{n:\mathbb{N}}{S(n):\mathbb{N}}(I_{\mathbb{N}}S)\]
\(\mathbb{N}\) as an algebra, I.
Evidently \(n\mapsto S(n)\) can be typed as \(\mathbb{N}\to \mathbb{N}\) by intro rule \((I_{\mathbb{N}}S)\).
\[\frac{n:\mathbb{N}}{S(n):\mathbb{N}}(I_{\mathbb{N}}S)\]
Name that function \(\texttt{++}\), i.e. \(\texttt{++}n:=S(n)\) of type \(\mathbb{N}\to \mathbb{N}\).
- \(\langle \mathbb{N},\texttt{++}\rangle\) is a [1]-algebra.
- \(\langle \mathbb{N},\texttt{++},0\rangle\) is a [1,0]-algebra.
This is counting (or "tally") algebra.
\(\mathbb{N}\) as an algebra, II.
We also know we can make new operators from old ones.
E.g.
\[m+n = \left\{\begin{array}{cc} m & n=0\\ S(m+k) & n=S(k)\end{array}\right.\]
So \((m,n)\mapsto m+n\) can be typed as \(\mathbb{N}^2\to \mathbb{N}\), i.e. it is a binary operator.
- \(\langle \mathbb{N},+,0\rangle\) is a [2,0]-algebra.
\(\mathbb{N}\) as an algebra, II.
\[m+n = \left\{\begin{array}{cc} m & n=0\\ S(m+k) & n=S(k)\end{array}\right.\]
By convention we short-hand symbols, e.g. \(1:=S(0)\), \(2:=S(1)\), etc.
Proposition. \(m+0=m\)
\(\mathbb{N}\) as an algebra, II.
\[m+n = \left\{\begin{array}{cc} m & n=0\\ S(m+k) & n=S(k)\end{array}\right.\]
Proposition.\(m+1=S(m)\)
Proof. Recall \(1:=S(0)\) so
\(m+1=m+S(0)=S(m+0)=S(m)\). \(\Box\)
\(\mathbb{N}\) as an algebra, II.
\[m+n = \left\{\begin{array}{cc} m & n=0\\ S(m+k) & n=S(k)\end{array}\right.\]
Proposition.\(m+1=S(m)\)
Proof. Recall \(1:=S(0)\) so
\(m+1=m+S(0)=S(m+0)=S(m)\). \(\Box\)
Laws of \(\mathbb{N}\)
\(m+n=n+m\)
\(\mathbb{N}\) as an algebra, II.
\[m+n = \left\{\begin{array}{cc} m & n=0\\ S(m+k) & n=S(k)\end{array}\right.\]
Proposition.\(m+n=n+m\).
Proof.
- Start with \(m=0\).
- Start with \(n=0\).
- \(0+0=0=0+0\).
- Next use \(n=S(k)\)
- \(0+n=0+S(k)=S(0+k)=S(k+0)=S(k)=n\), by induction that \(0+k=k+0\).
\(\mathbb{N}\) as an algebra, II.
\[m+n = \left\{\begin{array}{cc} m & n=0\\ S(m+k) & n=S(k)\end{array}\right.\]
Proposition.\(m+n=n+m\).
Proof.
- Next with \(m=S(j)\).
- Start with \(n=0\).
- \(m+0=m\), \(0+m=m\), apply reflexive and transitive law of \(=_{\mathbb{N}}\).
- Next use \(n=S(k)\)
- \(m+n=m+S(k)=S(m+k)=S(S(j)+k)=?\)
- \(n+m=S(n+j)=S(S(k)+j)=?\)
\(\mathbb{N}\) as an algebra, II.
Proposition.\(m+n=n+m\)
Proof. Cases \(m=S(j)\), \(n=S(k)\)
\[\begin{aligned} m+n & =S(j)+S(k) \\ & = S(S(j)+k) \\ & =S(k+S(j)) \\ & = S(S(k+j)) \\ & = S(S(j+k)) \\ & = S(j+S(k)) \\ & = S(S(k)+j) \\ & = S(k)+S(j)\\ & = n+m\end{aligned}\]
Laws of \(\mathbb{N}\)
\(\ell+(m+n)=(\ell+n)+m\)
HOMEWORK!
(sorry...everyone has to done one once in their life!)
This is cheating.
We never finished defining \(\mathbb{N}\) how can we begin using it?
\[\begin{array}{l} n\in \mathbb{N}\\ P(0)\\ k\in \mathbb{N}\vdash P(k)\Rightarrow P(k+1)\\ \hline P(n)\end{array}\]
Induction:
\[\begin{array}{rl} n&:\mathbb{N}\\ \epsilon &:P(0)\\ ind-hypo&:\prod_{k:\mathbb{N}}P(k)\to P(k+1)\\ \hline ind(\epsilon,f)&:P(n)\end{array}\]
\(\mathbb{N}\) elimination:
Natural numbers \(\mathbb{N}\)
\[\vdash \mathbb{N}:type\quad (F_{\mathbb{N}})\]
\[\vdash 0:\mathbb{N}\quad(I_{\mathbb{N}}0)\qquad \frac{n:\mathbb{N}}{S(n):\mathbb{N}}(I_{\mathbb{N}}S)\]
\[\begin{array}{rl} n & :\mathbb{N}\\ T & :\mathbb{N}\to type\\ base &:T_0\\ ind &:\prod_{k:\mathbb{N}}(T_k\to T_{S(k)})\\ \hline pf(n) & :T_n \end{array}\]
\((E_{\mathbb{N}})\)
\[\begin{array}{rl} T & :\mathbb{N}\to type\\ base &:T_0\\ ind &:\prod_{k:\mathbb{N}}(T_k\to T_{S(k)})\\ \hline refl & :pf(0)=_{T_0} base \end{array}\]
\[\begin{array}{rl} n & :\mathbb{N}\\ T & :\mathbb{N}\to type\\ base &:T_0\\ ind &:\prod_{k:\mathbb{N}}(T_k\to T_{S(k)})\\ \hline refl & : ind_n(pf(n))=_{T_{S(n)} }pf(S(n))\end{array}\]
Incomplete History
- Peano: first to recognize \(\mathbb{N}\) as an algebra generated by nullary 0 and unary successor \(S\), a bit less formal than today but appropriate for the logic of his day.
- Russell-Whitehead: made \(\mathbb{N}\) with types inside their Principia,
- Zermelo's modeled the same in his Set Theory
- Martin-Lof: gave \(\mathbb{N}\) in dependent type theory using his identity types for equality.
References
[H] Halmos, Naive Set Theory, Van Nostrand, 1960
[ML] Martin-Lof, Intuitionistic Type Theory, Padua Lectures, 1980.
Natural Numbers
By James Wilson
Natural Numbers
- 508