Lecture 4: Models

Teacher: Bruno Barras

The soundness statement involves 3 formalisms: domain, codomain, and the formalism in which the proof of soundness has been done (usually: primitive recursive arithmetic)

Soundness is used to prove:

  • Consistency of $A$ (w.r.t $Γ$): $Γ A\not⊢ ⊥$
  • Independence of $A$ (w.r.t. $Γ$): $Γ \not⊢ A$

Different kinds of models:

  • Set-theoretical: for everyday mathematics, to convince set theorists that our theory is consistent (and see type theory set-theoretically)
  • Groupoid model (Hofman-Streicher, 95): types interpreted by groupoids ⟹ from that: Homotopy Type Theory (effective to check theorem of homotopy theory)
  • Strong normalisation models (realisability): all the typable terms are strongly normalising (idea: interpret types and proofs by programs that strongly normalise)

Set theoretical model

  • Dependent product, $λ$-abstractions interpreted by their counterparts in set theory (set of functions depending on their argument and one function respectively)

  • Application correspond to function application

  • $Prop$ interpreted as $𝒫(∅)$ ($≅ \lbrace 0, 1 \rbrace$ classically, but contains intermediate sets as well in intuitionistic logic)

    • Problem: $A ⇒ A$ is function between booleans if $A$ is a proposition, but is a boolean as well: everything is collapsed to the empty set. Peter Aczel function encoding: instead of couples $(x, f(x))$ ⟶ $(x,y) \quad y ∈ f(x)$, so a function $x ⟼ ∅$ is interpreted as $∅$
  • $Type_i$ interpreted as $U_i$, in a Grothendieck universe

  • Inductive types interpreted by least fixed points (only strictly positive occurrences allowed)

Incomplete model: because all of these are not provable:

  • consistency of Classical logic
  • Choice axioms
  • Functional extensionality
  • Propositional extensionality

But it also means that we can add them to type theory without breaking consistency


What enable us to show that intuitionistic type theory is constructive: we can extract programs/objects satisfying the property from proofs.

Double negation translation:

\[⊢_{\text{classic}} A ⟺ ¬¬A \qquad\text{ and } \qquad ⊢_{\text{classic}} A \text{ implies } ⊢_{\text{intuit.}} ¬¬A\]

Normalizing an existential/disjunction proof ⟹ extraction: you get a witness

Leave a comment