Lecture 3: Arithmetic
Teacher: Gilles Dowek
- notion of proof: constructivity, witness property, termination of proof reduction
- notion of theory: having axioms makes the last rule property fail, so we’d better do without axioms and use congruence
- notion of model: many-valued, constructive proof, deduction-modulo theory
- A theory is consistent:
-
if it has a model valued in some non-trivial algebra
- A theory is super-consistent:
-
if for all (full, ordered, and complete) pre-Heyting algebra, it has a model valued in this algebra
- Full:
-
the domains of $\tilde ∀$ and $\tilde ∃$ is $𝒫^+(ℬ)$ (set of non-empty subsets)
- Ordered pre-Heyting algebra:
-
pre-Heyting algebra equipped with an extra order relation such that $\tilde ∧,\tilde ∨, \tilde ∀$, and $\tilde ∃$ are monotone, $\tilde ⇒$ is left anti-monotone and right monotone
- Completeness:
-
every subset has a glb
NB: completeness is useful to use fix-point theorems (Knaster-Tarski, etc…) and build our models out of that.
Examples of theories:
Arithmetic
-
example of wrong proposition: $∀x \, ∃y \, (7 = (x+2) × (y+2))$
-
Euclid’s proposition (there are an infinite amount of prime numbers): $∀x ∃y \, (y ≥ x ∧ prime(y))$
Symbols
Symbols and their arity of arithmetic:
- $0: 0$
- $S: 1$
- $+: 2$
- $×: 2$
- $=: 2$
NB:
- Every other computable function is expressible as a predicate using these
- $×$ is not expressible in $0: 0$, $S: 1$, $+: 2$ and $=:2$ (Presburger arithmetic), as Presburger arithmetic is decidable and Peano arithmetic is not.
Classical logic: Peano arithmetic (PA) Constructive logic: Heyting arithmetic (HA)
- with or without a sort $κ$ for classes
- with or without a predicate symbol $N$ for natural numbers
$HA^{κN}$: with both of them
$HA^{κN}$
Predicates: $0, S, Pred, +, ×, Null, =$
\[Pred(0) = 0\\ ∀x (Pred(S(x)) = x)\\ ∀y (0 + y = y)\\ ∀x ∀y (S(x) + y = S(x + y)) ∀y (0 × y = 0)\\ ∀x ∀y (S(x) × y = (x × y) + y) Null(0)\\ ∀x ¬Null(S(x))\]NB:
- $∀x (Pred(S(x)) = x)$ means that $S$ is injective. Usually, it’s replaced by Peano’s third axiom: $∀x∀y\, (S(x)=S(y) ⟹ x=y)$
- $∀x ¬Null(S(x))$ means that $0$ is not a successor. Usually, it’s replaced by Peano’s fourth axiom: $∀x ¬(0 = S(x))$ (the successor is not surjective)
- As there is an injection from $ℕ$ to $ℕ$ which not a surjection, $ℕ$ is infinite
- We don’t use Peano’s third and fourth axiom as it will make things easier for rewrite rules and our congruence.
Theory of classes (Second order logic)
Every class containing $0$ and closed by $S$ contains everything.
- $ι$: sort for numbers
- a sort $κ$ for classes
- a predicate symbol $∈$
Comprehension axiom scheme: existence of some classes
\[∀x_1,...,∀x_n ∃c ∀y (y ∈ c ⇔ A)\]NB:
- existence of a countable number of classes, but there is an uncoutable number of subsets of $ℕ$
- here, you only have numbers and classes of numbers. Not sets, because not nested sets and so on…
- Peano’s fifth axiom:
- \[0 ∈ c ⇒ ∀x, (x ∈ c ⇒ S(x) ∈ c) ⇒ ∀y, y ∈ c\]
Equality of classes: Leibniz’ definition
\[∀x∀y (x = y ⇔ ∀c (x ∈ c ⇒ y ∈ c))\]From this, you can prove reflexivity, symmetry, transitivity, and substitutivity ($∀x,y. (x=y ⇒ x+z=y+z)$).
- Induction scheme:
- \[∀c (0 ∈ c ⇒ ∀x (x ∈ c ⇒ S(x) ∈ c) ⇒ ∀y y ∈ c)\]
NB: this scheme should be read as the very definition of natural numbers: $ℕ$ is the smallest set containing $0$ and closed by $S$
Ex: if you want to prove $∀x, x+0=x$: use the induction scheme and the comprehension scheme: $∃c∀y (y ∈ c ⇔ y + 0 = y)$
Ex: prove that $S$ is injective in $HA^κ$
\[\infer{HA^κ ⊢ ∀x∀y \, S(x) = S(y) ⇒ x=y}{ \infer{HA^κ ⊢ S(x) = S(y) ⇒ x=y}{ \infer{HA^κ, S(x) = S(y) ⊢ x=y}{ \infer{HA^κ, S(x) = S(y) ⊢ Pred(S(x))=y ⇒ x=y}{ \infer{HA^κ, S(x) = S(y) ⊢ ∃c \, ∀z (z ε c ⇔ z=y)}{\infer{HA^κ, S(x) = S(y) ⊢ ∀y \, ∃c \, ∀z (z ε c ⇔ z=y)}{\phantom{HA^κ, S(x) = S(y) ⊢ ∀y \, ∃c \, ∀z (z ε c ⇔ z=y)}}} & \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ Pred(S(x))=y ⇒ x=y}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ (Pred(S(x)) ε c ⇒ x ε c) ⇒ (Pred(S(x))=y ⇒ x=y)}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ x=y}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ x ε c ⇒ x=y}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ x ε c ⇔ x=y}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ ∀x \, x ε c ⇔ x=y}{\phantom{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ ∀x \, x ε c ⇔ x=y}} } } & \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ x ε c}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x)) ε c ⇒ x ε c}{\phantom{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x)) ε c ⇒ x ε c}} & \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x)) ε c}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x))=y ⇒ Pred(S(x)) ε c}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x)) ε c ⇔ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ ∀ z \, (z ε c ⇔ z=y)}{\phantom{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ ∀ z \, (z ε c ⇔ z=y)}} & } & } & \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x))=y}{\phantom{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y), (Pred(S(x)) ε c ⇒ x ε c), Pred(S(x))=y ⊢ Pred(S(x))=y}} } } } } & \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ Pred(S(x)) ε c ⇒ x ε c}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ ∀ c' \, Pred(S(x)) ε c' ⇒ x ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ Pred(S(x)) = x ⇒ ∀ c' \, Pred(S(x)) ε c' ⇒ x ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ ∀z ∀t \, (z = t ⇒ ∀ c' \, z ε c' ⇒ t ε c')}{\phantom{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ ∀z ∀t \, (z = t ⇒ ∀ c' \, z ε c' ⇒ t ε c')}} } & \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ Pred(S(x)) = x}{ \infer{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ ∀x' \, Pred(S(x')) = x'}{\phantom{HA^κ, S(x) = S(y), ∀z (z ε c ⇔ z=y) ⊢ ∀x' \, Pred(S(x')) = x'}} } } } } } & \infer{HA^κ, S(x) = S(y) ⊢ Pred(S(x))=y}{\phantom{HA^κ, S(x) = S(y)}⊛\phantom{⊢ Pred(S(x))=y} } } } }\]where $⊛$ is the proof:
\[\infer{HA^κ, S(x) = S(y) ⊢ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y) ⊢ Pred(S(y))=y ⇒ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y) ⊢ ∃c∀z(zεc⇔z=y)}{ \infer{HA^κ, S(x) = S(y) ⊢ ∀y∃c∀z(zεc⇔z=y)}{\phantom{HA^κ, S(x) = S(y) ⊢ ∀y∃c∀z(zεc⇔z=y)}} } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y) ⊢ Pred(S(y))=y ⇒ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(x)) ε c ⇒ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(x)) ε c ⇔ Pred(S(x))=y}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀z \, z ε c ⇔ z=y}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀z \, z ε c ⇔ z=y}} } } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(x)) ε c}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y)) ε c ⇒ Pred(S(x)) ε c}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀c' \, Pred(S(y)) ε c' ⇒ Pred(S(x)) ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y)) = Pred(S(x)) ⇒ ∀c' \, Pred(S(y)) ε c' ⇒ Pred(S(x)) ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀ z ∀ t \, (z = t ⇒ ∀c' \, z ε c' ⇒ t ε c')}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀ z ∀ t \, (z = t ⇒ ∀c' \, z ε c' ⇒ t ε c')}} } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y)) = Pred(S(x))}{⊛⊛ } } } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y)) ε c}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y))=y ⇒ Pred(S(y)) ε c}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y)) ε c ⇔ Pred(S(y))=y}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀z(zεc⇔z=y)}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀z(zεc⇔z=y)}} } } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y))=y}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y))=y}} } } } & } } & \infer{HA^κ, S(x) = S(y) ⊢ Pred(S(y))=y}{ \infer{HA^κ, S(x) = S(y) ⊢ ∀y' \, Pred(S(y'))=y'}{\phantom{HA^κ, S(x) = S(y) ⊢ ∀y' \, Pred(S(y'))=y'}} } }\]where $⊛⊛$ is:
\[\infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ Pred(S(y)) = Pred(S(x))}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∃ c' ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀x ∃ c' ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y ⊢ ∀x ∃ c' ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}} } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ Pred(S(y)) = Pred(S(x))}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(y) ε c' ⇒ Pred(S(y)) = Pred(S(x))}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(y) ε c' ⇔ Pred(S(y)) = Pred(S(x))}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}} } } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(y) ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(x) ε c' ⇒ S(y) ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀c'' \, (S(x) ε c'' ⇒ S(y) ε c'')}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(x) = S(y) ⇒ ∀c'' \, (S(x) ε c'' ⇒ S(y) ε c'')}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀z∀t \, (z = t ⇒ ∀c'' \, (z ε c'' ⇒ t ε c''))}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀z∀t \, (z = t ⇒ ∀c'' \, (z ε c'' ⇒ t ε c''))}} } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(x) = S(y)}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(x) = S(y)}} } } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ S(x) ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ Pred(S(x)) = Pred(S(x)) ⇒ S(x) ε c'}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x)))}} } & \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ Pred(S(x)) = Pred(S(x))}{ \infer{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀x' \, x' = x'}{\phantom{HA^κ, S(x) = S(y), ∀z(zεc⇔z=y), Pred(S(y))=y, ∀z \, (z ε c' ⇔ Pred(z) = Pred(S(x))) ⊢ ∀x' \, x' = x'}} } } } } }\]$HA$
You can do without the comprehension scheme and use only one induction scheme (and then you have only one sort, you don’t need classes anymore):
\[∀x_1,...,∀x_n ((0/y)A ⇒ ∀p ((p/y)A ⇒ (S(p)/y)A) ⇒ ∀q (q/y)A)\]These two formulation (with and without classes: $HA$ and $HA^κ$) are “equivalent” (technical term: conservative extension): but what does it mean? $A$ is provable in $HA$ iff it is provable in $HA^κ$
- Extension (easy): If $A$ provable in $HA$ then $A$ is provable in $HA^κ$
- Conservative extension (not easy): If $A$ provable in $HA^κ$ then provable in $HA$
NB: Skolemization is a conservative extension.
Conservative extension…
…of a theory
$ℒ ⊆ ℒ’$ $𝒯$ in $ℒ$, $𝒯’$ in $ℒ’$
-
$𝒯’$ is an extension of $𝒯$ if all propositions provable in $𝒯$ are provable in $𝒯’$
-
$𝒯’$ is a conservative extension of $𝒯$ if all the propositions of $ℒ$ provable in $𝒯’$ provable in $𝒯$
…of a model
$ℒ ⊆ ℒ’$
$ℳ$ model of $ℒ$ and $ℳ’$ model of $ℒ’$
- $ℳ’$ is an extension of $ℳ$:
-
if for all sorts and symbols of $ℒ$ are interpreted in the same way in both models
Example (Skolemization):
- symbols: $+, 0$, and theory: $∀x, ∃y, (x+y=0)$
- interpretation: $⟨ℚ\backslash \lbrace 0\rbrace, ×, 1⟩$
- symbols: $+, 0, I$, and theory: $∀x (x+I(x)=0)$
- interpretation: $⟨ℚ\backslash \lbrace 0\rbrace, ×, 1, x ↦ 1/x⟩$
\[HA ⊢ A ⟹ HA^κ ⊢ A\\ HA^κ ⊢ A ⟹ HA ⊢ A \text{ if } A \text{ in the language of } HA\]Theorem: If for all models $ℳ$ of $𝒯$, there exists an extension $ℳ’$ of $ℳ$ that is a model of $𝒯’$, then $𝒯’$ conservative extension of $𝒯$
Peano’s predicate symbol
Now: from $HA^κ$ to $HA^{κN}$.
Induction axiom with a predicate symbol N for the natural numbers:
\[∀c (0 ∈ c ⇒ ∀x (x ∈ c ⇒ S(x) ∈ c) ⇒ ∀y (N(y) ⇒ y ∈ c))\]since there may exist other objects than natural numbers in our models.
Other way:
\[∀c (0 ∈ c ⇒ ∀x (N(x) ⇒ x ∈ c ⇒ S(x) ∈ c) ⇒ ∀y (N(y) ⇒ y ∈ c))\]Peano’s first and second axioms:
\[N(0)\\ ∀x, \, (N(x) ⇒ N(S(x)))\]NB: this is why in most books, you have Peano’s axioms from the third on (these two first axioms are not used (not avoid introducing the predicate $N$), but the original numbering is kept)
With:
\[(A ⇒ ∀x. B) ⟺ ∀x. (A ⇒ B)\\ (A ⇒ B ⇒ C) ⟺ (B ∧ A ⇒ C)\]we have a new formulation:
\[∀y (N(y)⇒∀c (0 ∈ c ⇒∀x (N(x)⇒ x ∈ c ⇒S(x) ∈ c)⇒y ∈ c))\]The converse is true as well by setting $c$ to be the class of natural numbers ($N$), therefore we can set:
\[∀y (N(y) ⟺ ∀c (0 ∈ c ⇒∀x (N(x)⇒ x ∈ c ⇒S(x) ∈ c)⇒y ∈ c))\]and discard Peano’s first and second axioms (that are now provable).
This new axiom may seem like a definition of $N$, but it’s circular. But nevermind, we will use fix-point theorems to build models.
Conservative extension of $HA^κ$
\[HA ⟶ HA^κ ⟶ HA^{κN}\]$∀x (x =0∨∃y (x =S(y)))$: provable in $HA$, $HA^κ$, but not in $HA^{κN}$ (in $HA^{κN}$: $∀x (N(x) ⇒ (x = 0 ∨ ∃y (x = S(y))))$). So $HA^{κN}$ is not an extension (it’s weaker, in a way).
Translation
\[|∀x A| = ∀x (N(x) ⇒ |A|)\\ |∃x A|=∃x (N(x)∧|A|)\\ |P|=P \text{ if } P \text{ is atomic}\\ |A∧B|=|A|∧|B|\\ |∀c A|=∀c |A|\\ |∃c A| = ∃c |A|\]
- If $A$ provable in $HA^κ$ then $\vert A \vert$ provable in $HA^{κN}$ (≃ extension)
- If $\vert A \vert$ provable in $HA^{κN}$ then $A$ provable in $HA^κ$ (≃ conservative extension)
- Disjunction property:
-
if you have a proof of $⊢ A∨B$, you either have a proof of $⊢ A$ or of $⊢ B$
In $HA^κ$: you don’t have the disjunction and witness properties, except for closed formulas.
In MLTT and Coq: no predicate symbol for natural numbers. But in AF2 (by Krivine and Parigot): you have it (that’s the only difference with the Calculus of Inductive Construction).
Having the disjunction and witness properties enables you to do without axioms.
Arithmetic as a purely computational theory
\[Pred(0) ⟶ 0\\ Pred(S(x)) ⟶ x\\ 0 + y ⟶ y\\ S ( x ) + y ⟶ S ( x + y )\\ 0 × y ⟶ 0\\ S ( x ) × y ⟶ ( x × y ) + y\\ Null(0) ⟶ ⊤\\ Null(S(x)) ⟶ ⊥\\ x = y ⟶ ∀c (x ∈ c ⇒ y ∈ c)\\ N(y) ⟶ ∀c (0 ∈ c ⇒ ∀x (N(x) ⇒ x ∈ c ⇒ S(x) ∈ c) ⇒ y ∈ c)\]Then, skolemization of the comprehension scheme:
\[∀x_1,...,∀x_n,∃c,∀y (y ∈ c ⇔ A)\]by introducing a notation for this class: $f_{x_1,…,x_n,y,A}(x_1, …, x_n)$:
\[∀x_1,...,∀x_n,∀y (y ∈ f_{x_1,...,x_n,y,A}(x_1, ..., x_n) ⇔ A)\]And add the rewriting rule
\[y ∈ f_{x_1,...,x_n,y,A}(x_1, ..., x_n) ⟶ A\]NB: You can turn a scheme into a finite number of axioms: e.g. Von Neumann-Bernays-Gödel set theory: there are operations on classes, and a finite number of axioms
Naive set theory
Arithmetic is not enough to formalize all mathematics. E.g. the statement « there is no bijection between $ℕ$ and $ℝ$ » is not provable in arithmetic.
In the beginning of the 20th century: Burali-Forti paradox reformulated by Russel ⟶ foundational crisis
Natural numbers and (set or functions): enable us to define integers, rational numbers, real numbers, points, lines, vectors, etc…
In Peano arithmetic, you can’t have predicates over functions for instance, as $IsInjective(S)$, as functions are not terms. Solution: introduce constant symbols for functions, and an “application function”: $α(S,0)$ is thought of as applying $S$ at $0$ (denoted by $(S \, x)$).
Copula $\epsilon$ (when you have two sorts: objects and classes): similar to $α$, but for predicates: $even(0)$ becomes $0 \, \epsilon \, even$
When you have sets of sets: only one sort, $\epsilon$ becomes $∈$.
Notation: $∈_n$, where $n$ is the arity. $∈_0$ denoted by $ε$
A set can be defined as its characteristic function.
$E$: function mapping its argument $x$ to the proposition expressing that $x$ is an element of $E$
Exs:
- $x ∈ E$ written $ε(E x)$
- $∈_2 (R, x, y)$ written $ε(R x y)$
So $∈_2, ∈_3, \ldots$: not needed anymore
Functions and combinators
For each term $t$ whose free variables are among $x_1, \ldots, x_n$ a constant $x_1, …, x_n ↦ t$
Combinators (way to remain in linear logic):
\[K ≝ x,y ↦ x\\ S ≝ x,y,z ↦ (x z) (y z)\]Simarly, for each proposition $A$: whose free variables are among $x_1, …, x_n$, a constant $\lbrace x_1, …, x_n \; \mid \; A\rbrace$
Cantor invented it, Frege formalized it, Russel and Burali-Forti showed it was inconsistent, and a few years later: Church re-invented what Frege did with untyped $λ$-calculus
Inconsistency (Russel’s paradox):
\[R ≝ \lbrace x \; \mid \; ¬ε(xx)\rbrace\]$ε(R R)$ reduces to $¬ ε(R R)$. Conversely, $¬ ε(R R)$ reduces to $ε(R R)$.
With the excluded-middle: there is an obvious contradiction (so Brouwer was happy with it, as he advocated constructivism).
But you can also do it in constructive logic:
\[\infer{⊢ ⊥}{ \infer{⊢ ¬A}{ \infer{A ⊢ ⊥}{A ⊢ ¬A & A ⊢ A} } & \infer{⊢ A}{⊢ ¬A} }\]To circumvent that: you either abandon
-
the fact that every predicate is an object (comprehension) ⟶ set theory
- no cut elimination within it (Belgian mathematician: Crabbé)
-
the fact that every predicate can be applied to every object ⟶ type theory
Leave a comment