-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path4-loopspace.agda
117 lines (95 loc) · 2.56 KB
/
4-loopspace.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
{-# OPTIONS --without-K #-}
open import Agda.Primitive
open import 1-equality
open import 2-composition
open import 3-ap
-- Eckmann-Hilton Argument
-- Loop space
Ω[_,_] :
{ℓ : Level} →
(A : Set ℓ) →
(a : A) →
Set ℓ
Ω[ A , a ] = a ≡ a
Ω²[_,_] :
{ℓ : Level} →
(A : Set ℓ) →
(a : A) →
Set ℓ
Ω²[ A , a ] = Ω[ Ω[ A , a ] , refl ]
Theorem·2·1·6 : --Eckmann-Hilton
-- Argument
{ℓ : Level} →
(A : Set ℓ) →
(a : A) →
(α β : Ω²[ A , a ]) →
α • β ≡ β • α
Theorem·2·1·6 A a α β =
α•β≡α⋆β • α⋆β≡α⋆'β • α⋆'β≡β•α
where
_•₁_ :
{ℓ : Level} →
{A : Set ℓ} →
{a b c : A} →
{p q : a ≡ b} →
(α : p ≡ q) →
(r : b ≡ c) →
(p • r ≡ q • r)
α •₁ refl = sym(ru _) • α • (ru _)
_•₂_ :
{ℓ : Level} →
{A : Set ℓ} →
{a b c : A} →
{r s : b ≡ c} →
(q : a ≡ b) →
(β : r ≡ s) →
(q • r ≡ q • s)
refl •₂ β = sym(lu _) • β • (lu _)
_⋆_ :
{ℓ : Level} →
{A : Set ℓ} →
{a b c : A} →
{p q : a ≡ b} →
{r s : b ≡ c} →
(α : p ≡ q) →
(β : r ≡ s) →
(p • r ≡ q • s)
α ⋆ β = (α •₁ _) • (_ •₂ β)
_⋆'_ :
{ℓ : Level} →
{A : Set ℓ} →
{a b c : A} →
{p q : a ≡ b} →
{r s : b ≡ c} →
(α : p ≡ q) →
(β : r ≡ s) →
(p • r ≡ q • s)
α ⋆' β = (_ •₂ β) • (α •₁ _)
α•β≡α⋆β : α • β ≡ α ⋆ β
α•β≡α⋆β =
ap (λ x → α • x )
(lu β • ru (refl • β))
•
ap (λ x → x • (refl • β • refl))
(lu α • ru (refl • α))
α⋆β≡α⋆'β : α ⋆ β ≡ α ⋆' β
α⋆β≡α⋆'β = ⋆≡⋆' α β where
⋆≡⋆' :
{ℓ : Level} →
{A : Set ℓ} →
{a b c : A} →
{p q : a ≡ b} →
{r s : b ≡ c} →
(α : p ≡ q) →
(β : r ≡ s) →
(α ⋆ β ≡ α ⋆' β)
⋆≡⋆' {p = refl} {q = refl}
{r = refl} {s = refl}
refl refl = refl
α⋆'β≡β•α : α ⋆' β ≡ β • α
α⋆'β≡β•α =
sym ((ap (λ x → β • x )
(lu α • ru (refl • α)))
•
(ap (λ x → x • (refl • α • refl))
(lu β • ru (refl • β))))