Skip to content

Latest commit

 

History

History

04-cubical-type-theory

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Cubical Type Theory and Cubical Agda

Lecturer: Anders Mörtberg

Teaching assistants for the exercise session:

Background material

Participants are encouraged to look at the following material before the course starts:

It is not necessary to actually learn or understand all of the above material and we will not assume that everyone has looked at it. However, at least taking a look at it will definitely help with following the course and many of the examples will be taken from the above sources.

The lecture notes Cubical Methods in Homotopy Type Theory and Univalent Foundations from the 2019 HoTT summer school might also be useful for some participants, but they assume quite a bit of mathematics and do not discuss Cubical Agda.

Installation of Cubical Agda and agda/cubical

In order to follow the course one needs a recent release of Agda (version >=2.6.2): https://wiki.portal.chalmers.se/agda/Main/Download

One also needs to download and build v0.3 of the agda/cubical library: https://github.com/agda/cubical/releases/tag/v0.3

If one has installed Agda and have the agda executable in ones path then building the library should work by running make in the cubical-0.3 directory after unpacking the v0.3 package. If one wants to use the agda/cubical library in another directory one has to register it by following: https://github.com/agda/cubical/blob/master/INSTALL.md#registering-the-cubical-library

Students with the intention to contribute to or trying out the latest version of the agda/cubical library will need to install the development version of Agda. Detailed instructions can be found at: https://github.com/agda/cubical/blob/master/INSTALL.md

The way to interact with Agda is via emacs and the Agda-mode. This mode gets installed with Agda, but you usually need to run agda-mode setup after the first time installing Agda. For details see: https://agda.readthedocs.io/en/v2.6.2/getting-started/installation.html#installation-from-hackage

Tip: It can be a bit complicated to install the development version of Agda and Anders uses the "cabal sandbox install instructions" solution, but other solutions might work better on other systems.

If you run into problems with installing Agda on your system you're welcome to ask for help on #tech-desk on Discord.

Schedule

The online lectures will take place on Thursday, April 15, 2021. All times are in UTC+2 (i.e. Stockholm time).

Time Topic
14:00–14:15 Introduction
14:15–14:45 Part 1: The interval and path types
14:45–15:15 Exercise session 1
15:15–15:30 (break)
15:30-16:00 Part 2: Transport and composition
16:00–16:30 Part 3: Univalence and the SIP
16:30–17:00 Exercise session 2
17:00–17:15 (break)
17:15–18:00 Part 4: Higher inductive types
18:00–18:30 Exercise session 3

Contents

Introduction

  • Why Cubical Type Theory?
  • Cubical Agda

See Introduction.pdf.

Part 1: The interval and path types

  • The interval in Cubical Agda
  • Path and PathP types
  • Function extensionality
  • Equality in Σ-types

See Part1.

Exercise session 1

See ExerciseSession1.

Part 2: Transport and composition

  • Cubical transport
  • Subst as a special case of cubical transport
  • Path induction from subst
  • Homogeneous composition (hcomp)
  • Binary composition of paths as special case of hcomp

See Part2.

Part 3: Univalence and the SIP

  • Univalence from ua and uaβ
  • Transporting with ua
  • The SIP as a consequence of ua

See Part3.

Exercise session 2

See ExerciseSession2.

Part 4: Higher inductive types

  • Set quotients via HITs
  • Propositional truncation
  • A little synthetic homotopy theory

See Part4.

Exercise session 3

See ExerciseSession3.

Additional material

Here are some pointers to further reading about Cubical Agda and examples of programming and proving in cubical type theory: