Lecture 1: J eliminator, Truncation, Extensional type theory

Correspondence between Types and Topological spaces

  • Structure of equality (Martin-Löf Identity type)

    • equality ⟺ $ω$-groupoids
  • Structure of equality on type constructors

    • $Σ$ types, $Π$ dependent products
  • Vladimir Voevodsky’s homotopy level of a type/truncation

    • contractible types
    • mere propositions ⟶ proof relevance
    • mere sets ⟶ uniqueness of identity proof

Idea:

$A$ type $A$ space
$a:A$ $a$ is a point in $A$
$a, b :A$: \(Id \, A \, a\, b\) (also denoted by $a =_A b$) $a, b ∈ A$: \(a \sim b\)
$refl_a : a =_A a$ $id_A$ the identity path. You can concatenate paths
\[\cfrac{Γ ⊢ a, b: A}{Γ ⊢ a =_A b \text{ type}}\] \[\cfrac{Γ ⊢ a: A}{Γ ⊢ refl_a: a =_A a}\] \[\cfrac{Γ ⊢ a, b: A \qquad Γ ⊢ P: \prod_{b:A} a=b → Type \qquad Γ ⊢ u: P \, a \; refl_a \qquad Γ ⊢ e: a =_A b}{Γ ⊢ J \, a \, P \, u \, b \, e: P \, b \, e}\] \[J \, a \, P \, u \, a \; refl_a ≡ u\] \[\texttt{app :} Π_{\substack{F: A→B\\ (a, a': A)}} a=a' ⟶ f a = f a'\] \[\texttt{transport: } \prod_{P: A → Type} \, (a: A) \, (b: A) \, (e: a =_A b): Pa → Pb\] \[\texttt{inverse: } Π_{a, b: A} a=b → b=a\]

By path induction with $refl_a: a=_Aa$

\[\texttt{associativity: } Π_{a, b, c, d: A} Π_{\substack{e:a=b \\ e':b=c \\ e'' : c=d}} e @ (e' @ e'') = (e @ e') @ e''\]

By path induction with $refl_{refl_a}$

Transport and equality

  • $a, b, c:A$
  • $q: b=c$
  • $p: a=b$
\[\texttt{transport_paths_right }: \texttt{transport } \, (fun: b → a=b) \, q \, p: a=_A c\]

But you have also

\[p @ q: a =_A c\]

But we can show that they are propositionally equal by path induction, with $refl_{refl_a}$

Dependent sums

  • $A: Type$
  • $B: A → Type$
  • Dependent sum: \(Σ_{a: A} B \, a\)

First (resp. second) component: $u.1$ (resp. $u.2$)

If \(u, v: Σ_{a: A} B \, a\)

How to prove $u = v$?

We can’t just say that

  • $p: u.1 = v.1$
  • $q: u.2 = v.2$ ⟶ not well-typed

Fix for $q$:

\[Σ_{p: u.1 = v.1} (\texttt{transport } B \, p \; u.2 = v.2) ⟶ u=v\]

In fact, there’s even an equivalence between the two.

Transport and equality: Functional extensionality

  • $A: Type$
  • $B: A → Type$
  • $f, g: \prod_{x:A} B \, x$

Are $\prod_{x:A} f \, x =_{B x} g \, x$ and $f=g$ equivalent ?

You can go from $f=g$ to \(\prod_{x:A} f \, x =_{B x} g \, x\) by path induction (with $λx. refl_{f \, x}$)

BUT: the converse doesn’t hold in HoTT!! It’s independent: not inconsistent though.

With the Univalence Axiom, it does.

Contractible types

  • $A: Type$
  • \[IsContr \, A ≝ \sum_{a:A} \prod_{b:A} a = b\]

The unit type is contractible:

Inductive unit: Type :=
    | tt: unit

$IsContr\, unit$

\[tt: unit \\ \prod_{b: unit} tt=b\\ λb. \texttt{match } b \texttt{ with}\\ \mid tt ⟹ refl_{tt}: tt=tt\]

Truncation

Fixpoint IsTrunc n A := match n with
    | 0 => IsContr A
    | S n => forall x y:A, IsTrunc n (x=y)
end.

But in HoTT, it starts with $-2$, so that Hsets are $0$-truncated, and it matches higher-category theory.

Starting at $0$:

\[IsContr \, A := IsTrunc \, 0 \, A \\ IsHProp \, A := IsTrunc \, 1 \, A\\ IsHSet \, A := IsTrunc \, 2 \, A\]

In particular:

\[IsHprop \, A := ∀x y: A. \sum_{e: x=y} \prod_{e': x=y} e=e'\]
Proof irrelevance (satisfying the following property means being a proposition):
\[IsIrr \, A := ∀x y: A. x=y\]

Why is it equivalent to $IsHprop$? Because when you satisfy $IsIrr$, you’re contractible, provided that you’re inhabited by at least one term (and all the higher equalities collapse).


\[UIP \, A := ∀ x y:A. ∀e e': x=y. e=e'\]

We have:

\[UIP \, A ≃ IsHSet \, A\]

Other contractible type:

\[singleton \, A \, (x:A) := \sum_{y:A} x=y\]

Extensional Type Theory (ETT)

\[\cfrac{Γ ⊢ e: x =_A y}{Γ ⊢ x ≡ y \quad\text{ (convertible)}}(reflection)\]

In ETT:

\[∀A, x y : A, e e': x=y. e=e'\]

By path induction on $e’$:

\[∀A, x:A, e: x=x. e= refl_x\]

Why? Because in fact, in ETT:

\[∀A:Type, xy: A, e:x=y. \; e=refl_x\]

It’s well-typed, because $x$ and $y$ are convertible, so that

\[x=y ≡ x=x\]

Then, path induction on $e$, and $refl_{refl_x}$

BUT: UIP and Univalence are not compatible! So that’s why we don’t have it in HoTT.

Leave a comment