TheHoTTGame/1FundamentalGroup/Quest0Part1.md
2021-09-15 16:50:44 +01:00

2.9 KiB

refl ≡ loop is empty

To get a better feel of , we show that the space

refl ≡ loop

is empty.

First, we define the empty space and what it means for a space to be empty. Here is what this looks like in agda :

data  : Type where 

This says "the empty space is a space with no points in it".

Here are two candidate definitions for a space A to be empty :

  • there is a point f : A → ⊥
  • there is a path p : A ≡ ⊥ in the space of spaces Type
  • there is an isomorphism i : A ≅ ⊥ of spaces

These turn out to be 'the same', however for our present purposes we will use the first definition. So our goal now is to produce a point of

( refl  loop )  

The authors of this series have thought long and hard about how one would come up with the following argument. Unfortunately, sometimes mathematics is in need of a new trick and this was one of them.

The trick is to create a map from refl ≡ loop to true ≡ false by constructing a non-trivial Bool-bundle over the circle, hence obtaining a map ( refl ≡ loop ) → ⊥.

To elaborate : Bool here refers to the discrete space with two points true, false. We will create a map doubleCover : S¹ → Type that sends base to Bool and the path loop to a non-trivial path flipPath : Bool ≡ Bool in the space of spaces. (Insert gif of double cover.) Viewing the picture vertically, for each point x : S¹, we call doubleCover x the fiber of doubleCover over x. All the fibers look like Bool, hence our choice of the name Bool-bundle.

Let's assume for the moment that we have flipPath already and define doubleCover.

  • Navigate to the definition of doubleCover and make sure you have loaded the file with C-c C-l.

    doubleCover :   Type
    doubleCover x = ?
    
  • Navigate your cursor to the hole, write x and do C-c C-c. You should now see two new holes :

    doubleCover :   Type
    doubleCover base = {!!}
    doubleCover (loop i) = {!!} 
    

    The meaning is as follows : the circle is made from a point base together with an edge loop, so a map out of it to a space is the same as choosing a point and an edge to map base and loop to respectively. Since loop is a path from base to itself, its image must also be a path from the image of base to itself.

  • Use C-c C-f and/or C-c C-b to navigate to the first hole. We want to map base to Bool so fill the hole with Bool using C-c C-SPC.

  • Navigate to the second hole. Here loop i is a generic point in the path loop, where i : I is a generic point of the 'unit interval'. We want to map loop to flipPath, so loop i should map to a generic point in the path flipPath. Try filling the hole.

Defining flipPath is quite involved and we will do so in the next quest!