Higher Induc � ve Types in Computa � onal Cubical Type Theory Evan Cavallo & Robert Harper Carnegie Mellon University POPL 2019 0
cubical type theory dependent type theory with a univalent, proof-relevant internal equality POPL 2019 1
cubical type theory dependent type theory with a univalent, proof-relevant internal equality indexed higher induc � ve types ■ quo � ent types for this equality ■ indexed induc � ve types that respect it POPL 2019 1
higher type theory: [Awodey & Warren; Voevodsky] dependent type theory with a univalent, proof-relevant internal equality POPL 2019 2
higher type theory: [Awodey & Warren; Voevodsky] dependent type theory with a univalent, proof-relevant internal equality POPL 2019 2
higher type theory: [Awodey & Warren; Voevodsky] dependent type theory with a univalent, proof-relevant internal equality " " POPL 2019 2
higher type theory: [Awodey & Warren; Voevodsky] dependent type theory with a univalent, proof-relevant internal equality " " isomorphism ⇒ equal types POPL 2019 2
higher type theory: [Awodey & Warren; Voevodsky] dependent type theory with a univalent, proof-relevant internal equality " " isomorphism ⇒ equal types POPL 2019 2
higher type theory: [Awodey & Warren; Voevodsky] dependent type theory with a univalent, proof-relevant internal equality " " isomorphism ⇒ equal types (axioma � zed by homotopy type theory) POPL 2019 2
cubical type theory: [Cohen, Coquand, Huber & Mörtberg; Angiuli, Favonia & Harper] computa � onal higher type theory via dimension variables POPL 2019 3
cubical type theory: [Cohen, Coquand, Huber & Mörtberg; Angiuli, Favonia & Harper] computa � onal higher type theory via dimension variables POPL 2019 3
cubical type theory: [Cohen, Coquand, Huber & Mörtberg; Angiuli, Favonia & Harper] computa � onal higher type theory via dimension variables POPL 2019 3
cubical type theory: path types POPL 2019 4
cubical type theory: path types POPL 2019 4
cubical type theory: coercion POPL 2019 5
cubical type theory: coercion POPL 2019 5
cubical type theory: coercion POPL 2019 5
cubical type theory: composi � on POPL 2019 6
cubical type theory: composi � on POPL 2019 6
cubical type theory: composi � on POPL 2019 6
cubical type theory: composi � on POPL 2019 6
cubical type theory: composi � on POPL 2019 6
cubical type theory: composi � on general case: POPL 2019 6
cubical type theory: + univalence POPL 2019 7
higher induc � ve types quo � ents for proof-relevant equality POPL 2019 8
higher induc � ve types quo � ents for proof-relevant equality POPL 2019 8
higher induc � ve types quo � ents for proof-relevant equality POPL 2019 8
higher induc � ve types quo � ents for proof-relevant equality POPL 2019 8
higher induc � ve types quo � ents for proof-relevant equality POPL 2019 8
higher induc � ve types POPL 2019 9
higher induc � ve types POPL 2019 10
higher induc � ve types POPL 2019 10
higher induc � ve types POPL 2019 10
higher induc � ve types POPL 2019 10
higher induc � ve types POPL 2019 10
higher induc � ve types etc. POPL 2019 10
higher induc � ve types in generality POPL 2019 11
higher induc � ve types in generality ■ axioma � c type theory: - Sojakova: W-quo � ents - Basold, Geuvers, & van der Weide; Dybjer & Moeneclaey; Kaposi & Kovács ■ seman � cs: - Dybjer & Moeneclaey - Lumsdaine & Shulman: cell monads ■ cubical type theory: - Coquand, Huber, & Mörtberg: examples, schema sketch POPL 2019 11
higher induc � ve types in generality ■ axioma � c type theory: - Sojakova: W-quo � ents - Basold, Geuvers, & van der Weide; Dybjer & Moeneclaey; Kaposi & Kovács ■ seman � cs: - Dybjer & Moeneclaey - Lumsdaine & Shulman: cell monads ■ cubical type theory: - Coquand, Huber, & Mörtberg: examples, schema sketch our contribu � on: cubical schema with computa � onal seman � cs POPL 2019 11
higher induc � ve types in generality ■ axioma � c type theory: - Sojakova: W-quo � ents - Basold, Geuvers, & van der Weide; Dybjer & Moeneclaey; Kaposi & Kovács ■ seman � cs: - Dybjer & Moeneclaey - Lumsdaine & Shulman: cell monads ■ cubical type theory: - Coquand, Huber, & Mörtberg: examples, schema sketch our contribu � on: cubical schema with computa � onal seman � cs (including indexed induc � ve types) POPL 2019 11
1. schema POPL 2019 12
1. schema elimina � on principle POPL 2019 12
2. seman � cs what are the values of an induc � ve type? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? can we implement coercion and composi � on? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? can we implement coercion and composi � on? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? can we implement coercion and composi � on? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? can we implement coercion and composi � on? POPL 2019 13
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? POPL 2019 14
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? POPL 2019 14
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? POPL 2019 14
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? POPL 2019 14
2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? can we implement coercion and composi � on? and elimina � on? POPL 2019 14
* 2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? can we implement coercion and composi � on? and elimina � on? * more complicated in general case POPL 2019 14
* 2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? can we implement coercion and composi � on? and elimina � on? * more complicated in general case POPL 2019 14
* 2. seman � cs what are the values of an induc � ve type? can we implement coercion and composi � on? and elimina � on? can we implement coercion and composi � on? and elimina � on? * more complicated in general case POPL 2019 14
indexed induc � ve types POPL 2019 15
indexed induc � ve types iden � ty type (subject of HoTT axioms) POPL 2019 15
indexed induc � ve types iden � ty type (subject of HoTT axioms) POPL 2019 15
indexed induc � ve types iden � ty type (subject of HoTT axioms) POPL 2019 15
indexed induc � ve types iden � ty type (subject of HoTT axioms) POPL 2019 15
indexed induc � ve types iden � ty type (subject of HoTT axioms) ✓ POPL 2019 15
all in all ■ schema for indexed higher induc � ve types - torus, higher trunca � ons, localiza � ons, etc. - iden � ty types ■ computa � onal seman � cs - PERs on untyped opera � onal seman � cs - canonicity theorem ■ fragment implemented in redtt proof assistant github.com/RedPRL/redtt POPL 2019 16
Recommend
More recommend