Added 1FundamentalGroup/Quest2Part0.md

This commit is contained in:
kl-i 2021-09-20 15:11:10 +01:00
parent 7e1e1f2064
commit 0b24937e0c
7 changed files with 39 additions and 13 deletions

View File

@ -7,7 +7,7 @@ open import Cubical.Data.Int
open import Cubical.Data.Empty open import Cubical.Data.Empty
open import Cubical.Foundations.Prelude open import Cubical.Foundations.Prelude
open import Cubical.Foundations.HLevels open import Cubical.Foundations.HLevels
open import 1FundamentalGroup.Quest0 using ( Refl ; Refl≢loop ) open import 1FundamentalGroup.Quest0Solutions using ( Refl ; Refl≢loop )
Ω : (A : Type) (a : A) Type Ω : (A : Type) (a : A) Type
Ω A a = a a Ω A a = a a

View File

@ -77,6 +77,10 @@ Try giving it '`loop n times`' composed with `loop`.
Then try to also define the map on the negative integers. Then try to also define the map on the negative integers.
You will need to invert paths using `sym`. You will need to invert paths using `sym`.
```agda
sym : x ≡ y → y ≡ x
```
<p> <p>
<details> <details>
<summary>Looking up definitions</summary> <summary>Looking up definitions</summary>

View File

@ -1,8 +1,9 @@
# Homotopy Levels
The loop space can contain higher homotopical information that The loop space can contain higher homotopical information that
the fundamental group does not capture. the fundamental group does not capture.
For example, consider `S²`. For example, consider `S²`.
```agda ```agda
data S² : Type where data S² : Type where
base : S² base : S²
@ -32,7 +33,7 @@ So `base ≡ base` has non-trivial path structure.
<img src="images/S2.png" <img src="images/S2.png"
alt="S2" alt="S2"
width="500" width="1000"
class="center"/> class="center"/>
Let's be more precise about homotopical data : Let's be more precise about homotopical data :
@ -81,6 +82,11 @@ In the cubical library we have the result
isProp→isSet : (A : Type) → isProp A → isSet A isProp→isSet : (A : Type) → isProp A → isSet A
``` ```
which we will not prove.
Assuming `¬isSetS¹`, use `isProp→isSet` to deduce `¬isPropS¹`.
<!-- from now you should fill in the hypotheses of the proof yourself -->
<!-- (put `h` before the `=` sign or use `C-c C-r`). -->
<p> <p>
<details> <details>
<summary>HLevel</summary> <summary>HLevel</summary>
@ -90,27 +96,21 @@ Generalisation to HLevel and isHLevel n → isHLevel suc n??
</details> </details>
</p> </p>
which we will not prove.
Use `isProp→isSet` to conclude `¬isPropS¹` (using `¬isSetS¹`),
from now you should fill in the hypotheses of the proof yourself
(put `h` before the `=` sign or use `C-c C-r`).
Turning our attention to `¬isSetS¹`, Turning our attention to `¬isSetS¹`,
again supposing `h : isSet S¹` - again given `h : isSet S¹` -
a map continuously taking each pair `x y : A` a map continuously taking each pair `x y : A`
to a point in `isProp (x ≡ y)`. to a point in `isProp (x ≡ y)`.
We can apply `h` twice to the only point `base` available to us, We can apply `h` twice to the only point `base` available to us,
obtaining a point of `isProp (base ≡ base)`. obtaining a point of `isProp (base ≡ base)`.
Can we map this into the empty space? Try mapping from this into the empty space.
<p> <p>
<details> <details>
<summary>Hint 0</summary> <summary>Hint 0</summary>
We have already shown that `Refl ≡ loop` is the empty space. We have already shown that `Refl ≡ loop` is the empty space.
We have imported `Quest0` for you, so you can just quote the We have imported `Quest0Solutions.agda` for you,
result from there. so you can just quote the result from there.
</details> </details>
</p> </p>

View File

@ -0,0 +1,3 @@
# Set Truncation and Higher Homotopy Groups
We've seen what it means for a space to be a "set".

View File

@ -0,0 +1,19 @@
# Comparison maps between `Ω S¹ base` and ``
In `Quest1` we have defined the map `loop_times : → Ω S¹ base`.
Creating the inverse map is difficult without access to the entire circle.
Similarly to how we used `doubleCover` to distinguish `refl` and `base`,
the idea is to replace `Bool` with ``,
allowing us to distinguish between all loops on `S¹`.
The plan is :
- Define a function `suc : ` that increases every integer by one
- Prove that `suc` is an isomorphism by constructing
an inverse map `pred : `.
- Turn `suc` into a path `sucPath : ` using `isoToPath`
- Define `helix : S¹ → Type` by mapping `base` to `` and
a generic point `loop i` to `sucPath i`.
- Use `helix` and `endPt` to define the map `base ≡ x → helix x`
on all `x : S¹`, in particular giving us `Ω S¹ base → `
when applied to `base`.

Binary file not shown.