Quest 0 - Side Quests
Different notions of “empty”
The following are “the same”,
there is a point
f : A → ⊥in the space of functions fromAto the empty spacethere is a path
p : A ≡ ⊥in the space of spacesTypefromAto the empty spacethere is an isomorphism
i : A ≅ ⊥(input\congfor≅) of spaces
Here we will take “the same” to mean there are maps from any one to another (they are “propositionally the same”). We will first define the three.
In 1FundamentalGroup/Quest0.agda, uncomment this side quest
and locate these three definitions :
_toEmpty : (A : Type) → Type
A toEmpty = {!!}
pathEmpty : (A : Type) → Type₁
pathEmpty A = {!!}
isoEmpty : (A : Type) → Type
isoEmpty A = {!!}
Note
You can use underscores when you name a function.
agda will put the inputs in the underscores in order.
Tip
agda supports unicode symbols such as ⊥.
See here for how to insert ⊥ and other symbols.
Try to fill them in according to the above.
You may have noticed we used Type₁ in the second definition.
To find out what Type₁ is,
see Part 3 - Universes in Trinitarianism.
Check that your definitions are the same as ours by comparing with
the solutions in
1FundamentalGroup/Quest0Solutions.agda.
We will make maps from toEmpty A to isoEmpty A to pathEmpty A
and back to toEmpty A.
First we show that the empty space maps into any other space. This is very useful when working with the empty space.
outOf⊥ : (A : Type) → ⊥ → A
outOf⊥ = {!!}
Try to fill in the definition without looking at the hint.
Recall the definition of the empty space
being a CW-complex with nothing in it.
We can always case
on variable points from CW-complexes.
What cases are there?Hint
We fill in toEmpty→isoEmpty
toEmpty→isoEmpty : (A : Type) → toEmpty A → isoEmpty A
toEmpty→isoEmpty A = {!!}
Tip
You can use where to extract lemmas / make local definitions
like we did in defining flipIso;
see here.
Check the goal to see what we have
and what we need to give. Assume Refine the goal to see what Hint 0
f : toEmpty A by putting an f
before the =.agda suggests.
We need to give an isomorphism,
i.e. a map from If we have a point in Hint 1
A to ⊥,
and a map from ⊥ to A,
and proofs that these satisfy section and retract respectively.⊥ then we can get a point in any space.
Try filling in
isoEmpty→pathEmpty : (A : Type) → isoEmpty A → pathEmpty A
isoEmpty→pathEmpty A = {!!}
We converted an isomorphism to a path in
quest 0.Hint
Lastly try filling in
pathEmpty→toEmpty : (A : Type) → pathEmpty A → toEmpty A
pathEmpty→toEmpty A = {!!}
Check the goal
We can assume a path
p : pathEmpty ACheck the goal again
Since
toEmpty Aas defined asA → ⊥we can assume a pointx : AWe can follow the point
xalong the pathpusingpathToFun, as we did forflipPathin Quest 0 - Working with the Circle.
Proving true≢false
Locate 1FundamentalGroup/Quest0SideQuests/TrueNotFalse.agda
we will show
true≢false : true ≡ false → ⊥
true≢false = {!!}
We do this by making a subsingleton bundle over Bool
whose fiber over true is the singleton space ⊤
and fiber over false is the empty space ⊥.
The definition of ⊤ is
data ⊤ : Type where
tt : ⊤
Assume a path
h : true ≡ falseDefine a map from
BooltoType(as a lemma or using where), that takestrueto⊤andfalseto⊥. This is a subsingleton bundle overBool, since each fiber is⊤and⊥, having only a single or no points.We can follow how the point
tt : ⊤changes along the pathhusingpathToFun, as we did forflipPathin Quest 0 - Working with the Circle. This should give you a point in the empty space⊥.
Due to the previous side quest Different notions of “empty” this tells us
that the space true ≡ false is empty.
Defining cong
Under construction