Added 1FundamentalGroup/Quest2Part0.md
This commit is contained in:
parent
7e1e1f2064
commit
0b24937e0c
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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>
|
||||||
|
3
1FundamentalGroup/Quest1Part2.md
Normal file
3
1FundamentalGroup/Quest1Part2.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Set Truncation and Higher Homotopy Groups
|
||||||
|
|
||||||
|
We've seen what it means for a space to be a "set".
|
19
1FundamentalGroup/Quest2Part0.md
Normal file
19
1FundamentalGroup/Quest2Part0.md
Normal 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`.
|
BIN
_build/2.6.3/agda/1FundamentalGroup/Quest0Solutions.agdai
Normal file
BIN
_build/2.6.3/agda/1FundamentalGroup/Quest0Solutions.agdai
Normal file
Binary file not shown.
BIN
_build/2.6.3/agda/1FundamentalGroup/Quest1.agdai
Normal file
BIN
_build/2.6.3/agda/1FundamentalGroup/Quest1.agdai
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user