INTRODUCTION TO HOMOTOPY TYPE THEORY EUTypes School, Ohrid 2019 NOTES AND EXERCISES FOR LECTURE THREE 3 September 2019 [Recall Chapter 6: k : ((x,y) = (x',y')) -> ((x=x')*(y=y')) is an equivalence. This allows us to construct equalities in a pair type. Today: Can we do this for other types?] Chapter 7: Function extensionality and univalence given functions f,g: A -> B, when are they equal? Possible axiom: funext(f,g) : (Pi(x:A). f x = g x) -> (f = g) Note: this does not tell us what (f = g) is; it only tells us how to construct an equality. Can we formulate it in the same way as 'k' above? We can define: happly(f,g) : (f = g) -> (Pi(x:A). f x = g x) (f,g can be dependent functions, i.e. f,g: Pi(x:A).B x) possible axiom: strongfunext(f,g) : isequiv(happly(f,g)) Theorem (Voevodsky): funext -> strongfunext What about the universe 'Type'? [Note: A ~ B means "equivalences", i.e. A ~ B is the type of tuples (f,g,alpha,beta,gamma).] possible axiom: ua(A,B) : (A ~ B) -> (A = B) Can we do it like above? Define id2equiv(A,B) : (A = B) -> (A ~ B) by path induction (J). axiom (Voevodsky): UA : Pi(A,B: Type). isequiv(id2equiv(A,B)) We have seen some intuition in lecture 2 for why uip is not provable. We can now show the negation of uip at the type 'Type': if uip(Type) : Pi(A,B: Type). (p,q: A = B). p = q then we have uip(Type) Bool Bool ua(id,_) ua(neg,_) : ua(id,_) = ua(neg,_) thus id = neg thus true = false qed. Chapter 8: truncation levels, a.k.a. n-types, a.k.a. h-levels (Voevodsky's hierarchy) contractible types, propositional types, and sets (a.k.a. h-sets, a.k.a. types satisfying uip) isContr, isProp, uip (a.k.a. isSet): Type -> Type isContr A := Sigma(x:A). Pi(y:A). y = x isProp A := Pi(x y : A). x = y uip A := Pi(x y : A). Pi(p q : x = y). p = q examples: 'Unit' is the only example for a contractibe type. 'Unit' and 'Empty' are propositional types Why is the donut not contractible or propositional (picture)? Because we cannot choose paths in a continuous way. more uniformly: is-(-2)-type A := isContr A is-(n+1)-type A := Pi(x y : A). is-n-type (x = y) Theorem: for all A and n (n >= -2): (1) isProp(is-n-type A) (2) (isProp A) ~ (is-(-1)-type A) (uip A) ~ (is-0-type A) (3) (is-n-type A) -> (is-(n+1)-type A) (4) A -> isProp A -> isContr A EXERCISES: Show (1) - (4) of the above theorem. SOLUTIONS: See the HoTT book, Chapter 7.