|
1 | 1 | {- K(G,n): https://anders.groupoid.space/mathematics/homotopy/KGn/ |
2 | | - |
3 | | - - Eilenberg-MacLane spaces K(G,n). |
4 | | - |
5 | | - Copyright (c) Groupoid Infinity, 2016-2026. -} |
6 | | - |
7 | | -module KGn where |
8 | | -import library/foundations/mltt/inductive |
9 | | -import library/mathematics/algebra/algebra |
10 | | -import library/mathematics/homotopy/suspension |
11 | | -import library/mathematics/homotopy/truncation |
12 | | -import library/mathematics/homotopy/quotient |
13 | | - |
14 | | -def 𝚺ₓ (A: U) : ℕ → U := ℕ-iter U A 𝚺 |
15 | | -def discreteTopology (G : abgroup) : U := G.1.1 |
16 | | -def R-K1 (G : group) : 𝟏 → 𝟏 → U := λ (x y : 𝟏), G.1.1 |
17 | | -def loop-K1 (G : group) (g : G.1.1) : R¯ 𝟏 (R-K1 G) ★ ★ := quot₂ 𝟏 (R-K1 G) ★ ★ g |
18 | | -def Q-K1 (G : group) (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) : U |
19 | | - := + (Σ (g h : G.1.1), prod (Path (R¯ 𝟏 (R-K1 G) x y) r1 |
20 | | - (−·− 𝟏 (R-K1 G) ★ ★ ★ (loop-K1 G g) (loop-K1 G h))) |
21 | | - (Path (R¯ 𝟏 (R-K1 G) x y) r2 (loop-K1 G (G.2.1.1 g h)))) |
22 | | - (prod (Path (R¯ 𝟏 (R-K1 G) x y) r1 (loop-K1 G G.2.1.2.2.1)) |
23 | | - (Path (R¯ 𝟏 (R-K1 G) x y) r2 (idp (quot 𝟏 (R-K1 G)) (quot₁ 𝟏 (R-K1 G) ★)))) |
24 | | -def K1 (G : group) : U := ‖_‖₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) |
25 | | -def K1-point (G : group) : K1 G := trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₁ 𝟏 (R-K1 G) (Q-K1 G) ★) |
26 | | -def K1-loop (G : group) (g : G.1.1) : Path (K1 G) (K1-point G) (K1-point G) |
27 | | - := <i> trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₂ 𝟏 (R-K1 G) (Q-K1 G) ★ ★ g @ i) |
28 | | - |
29 | | -def K (G : abgroup) (n: ℕ) : U |
30 | | - := ℕ-iter U (discreteTopology G) (λ (_: U), ‖_‖ (𝚺ₓ (K1 (G.X, G.2.g)) n) n) n |
31 | | - |
32 | | -def K-point (G : abgroup) : Π (n : ℕ), K G n |
33 | | - := ℕ-ind (K G) |
34 | | - G.2.g.1.2.2.1 |
35 | | - (λ (k : ℕ) (_ : K G k), trunc₁ (𝚺ₓ (K1 (G.X, G.2.g)) (succ k)) (succ k) (𝜎₁ (𝚺ₓ (K1 (G.X, G.2.g)) k))) |
36 | | - |
37 | | -def K1-ind (G : group) (P : K1 G → U) |
38 | | - (pPoint : P (K1-point G)) |
39 | | - (pPath : Π (g : G.1.1), PathP (<i> P (K1-loop G g @ i)) pPoint pPoint) |
40 | | - (pCoher : Π (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) (q : Q-K1 G x y r1 r2), |
41 | | - PathP (<i> PathP (<j> P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₃ 𝟏 (R-K1 G) (Q-K1 G) x y r1 r2 q @ i @ j))) |
42 | | - pPoint pPoint) |
43 | | - (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r1) |
44 | | - (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r2)) |
45 | | - (nHub : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)), P (trunc₂ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f)) |
46 | | - (nSpoke : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)) (s : sphere two), |
47 | | - PathP (<i> P (trunc₃ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f s @ i)) (nHub f nF) (nF s)) |
48 | | - (z : K1 G) : P z |
49 | | - := trunc-ind (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two P |
50 | | - (2-quot-ind 𝟏 (R-K1 G) (Q-K1 G) (λ (x : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two x)) |
51 | | - (λ (_ : 𝟏), pPoint) |
52 | | - (λ (_ _ : 𝟏) (g : G.1.1), pPath g) |
53 | | - (λ (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) (q : Q-K1 G x y r1 r2), pCoher x y r1 r2 q)) |
54 | | - nHub nSpoke z |
55 | | - |
56 | | -def K1-β₁ (G : group) (P : K1 G → U) |
57 | | - (pPoint : P (K1-point G)) |
58 | | - (pPath : Π (g : G.1.1), PathP (<i> P (K1-loop G g @ i)) pPoint pPoint) |
59 | | - (pCoher : Π (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) (q : Q-K1 G x y r1 r2), |
60 | | - PathP (<i> PathP (<j> P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₃ 𝟏 (R-K1 G) (Q-K1 G) x y r1 r2 q @ i @ j))) |
61 | | - pPoint pPoint) |
62 | | - (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r1) |
63 | | - (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r2)) |
64 | | - (nHub : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)), P (trunc₂ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f)) |
65 | | - (nSpoke : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)) (s : sphere two), |
66 | | - PathP (<i> P (trunc₃ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f s @ i)) (nHub f nF) (nF s)) |
67 | | - : Path (P (K1-point G)) (K1-ind G P pPoint pPath pCoher nHub nSpoke (K1-point G)) pPoint |
68 | | - := idp (P (K1-point G)) pPoint |
| 2 | + |
| 3 | + - Eilenberg-MacLane spaces K(G,n). |
| 4 | + |
| 5 | + Copyright (c) Groupoid Infinity, 2016-2026. -} |
| 6 | + |
| 7 | + module KGn where |
| 8 | + import library/foundations/mltt/inductive |
| 9 | + import library/mathematics/algebra/algebra |
| 10 | + import library/mathematics/homotopy/suspension |
| 11 | + import library/mathematics/homotopy/truncation |
| 12 | + import library/mathematics/homotopy/quotient |
| 13 | + import library/mathematics/homotopy/quotient2 |
| 14 | + |
| 15 | + def 𝚺ₓ (A: U) : ℕ → U := ℕ-iter U A 𝚺 |
| 16 | + def discreteTopology (G : abgroup) : U := G.1.1 |
| 17 | + def R-K1 (G : group) : 𝟏 → 𝟏 → U := λ (x y : 𝟏), G.1.1 |
| 18 | + def loop-K1 (G : group) (g : G.1.1) : R¯ 𝟏 (R-K1 G) ★ ★ := quot₂ 𝟏 (R-K1 G) ★ ★ g |
| 19 | + def Q-K1 (G : group) (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) : U |
| 20 | + := + (Σ (g h : G.1.1), prod (Path (R¯ 𝟏 (R-K1 G) x y) r1 |
| 21 | + (−·− 𝟏 (R-K1 G) ★ ★ ★ (loop-K1 G g) (loop-K1 G h))) |
| 22 | + (Path (R¯ 𝟏 (R-K1 G) x y) r2 (loop-K1 G (G.2.1.1 g h)))) |
| 23 | + (prod (Path (R¯ 𝟏 (R-K1 G) x y) r1 (loop-K1 G G.2.1.2.2.1)) |
| 24 | + (Path (R¯ 𝟏 (R-K1 G) x y) r2 (idp (quot 𝟏 (R-K1 G)) (quot₁ 𝟏 (R-K1 G) ★)))) |
| 25 | + def K1 (G : group) : U := ‖_‖₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) |
| 26 | + def K1-point (G : group) : K1 G := trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₁ 𝟏 (R-K1 G) (Q-K1 G) ★) |
| 27 | + def K1-loop (G : group) (g : G.1.1) : Path (K1 G) (K1-point G) (K1-point G) |
| 28 | + := <i> trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₂ 𝟏 (R-K1 G) (Q-K1 G) ★ ★ g @ i) |
| 29 | + |
| 30 | + def K (G : abgroup) (n: ℕ) : U |
| 31 | + := ℕ-iter U (discreteTopology G) (λ (_: U), ‖_‖ (𝚺ₓ (K1 (G.X, G.2.g)) n) n) n |
| 32 | + |
| 33 | + def K-point (G : abgroup) : Π (n : ℕ), K G n |
| 34 | + := ℕ-ind (K G) |
| 35 | + G.2.g.1.2.2.1 |
| 36 | + (λ (k : ℕ) (_ : K G k), trunc₁ (𝚺ₓ (K1 (G.X, G.2.g)) (succ k)) (succ k) (𝜎₁ (𝚺ₓ (K1 (G.X, G.2.g)) k))) |
| 37 | + |
| 38 | + def K1-ind (G : group) (P : K1 G → U) |
| 39 | + (pPoint : P (K1-point G)) |
| 40 | + (pPath : Π (g : G.1.1), PathP (<i> P (K1-loop G g @ i)) pPoint pPoint) |
| 41 | + (pCoher : Π (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) (q : Q-K1 G x y r1 r2), |
| 42 | + PathP (<i> PathP (<j> P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₃ 𝟏 (R-K1 G) (Q-K1 G) x y r1 r2 q @ i @ j))) |
| 43 | + pPoint pPoint) |
| 44 | + (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r1) |
| 45 | + (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r2)) |
| 46 | + (nHub : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)), P (trunc₂ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f)) |
| 47 | + (nSpoke : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)) (s : sphere two), |
| 48 | + PathP (<i> P (trunc₃ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f s @ i)) (nHub f nF) (nF s)) |
| 49 | + (z : K1 G) : P z |
| 50 | + := trunc-ind (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two P |
| 51 | + (2-quot-ind 𝟏 (R-K1 G) (Q-K1 G) (λ (x : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two x)) |
| 52 | + (λ (_ : 𝟏), pPoint) |
| 53 | + (λ (_ _ : 𝟏) (g : G.1.1), pPath g) |
| 54 | + (λ (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) (q : Q-K1 G x y r1 r2), pCoher x y r1 r2 q)) |
| 55 | + nHub nSpoke z |
| 56 | + |
| 57 | + def K1-β₁ (G : group) (P : K1 G → U) |
| 58 | + (pPoint : P (K1-point G)) |
| 59 | + (pPath : Π (g : G.1.1), PathP (<i> P (K1-loop G g @ i)) pPoint pPoint) |
| 60 | + (pCoher : Π (x y : 𝟏) (r1 r2 : R¯ 𝟏 (R-K1 G) x y) (q : Q-K1 G x y r1 r2), |
| 61 | + PathP (<i> PathP (<j> P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two (2-quot₃ 𝟏 (R-K1 G) (Q-K1 G) x y r1 r2 q @ i @ j))) |
| 62 | + pPoint pPoint) |
| 63 | + (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r1) |
| 64 | + (2-quot-lift 𝟏 (R-K1 G) (Q-K1 G) (λ (z : 2-quot 𝟏 (R-K1 G) (Q-K1 G)), P (trunc₁ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two z)) (λ (_:𝟏), pPoint) (λ (_ _ : 𝟏) (g:G.1.1), pPath g) x y r2)) |
| 65 | + (nHub : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)), P (trunc₂ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f)) |
| 66 | + (nSpoke : Π (f : sphere two → K1 G) (nF : Π (s : sphere two), P (f s)) (s : sphere two), |
| 67 | + PathP (<i> P (trunc₃ (2-quot 𝟏 (R-K1 G) (Q-K1 G)) two f s @ i)) (nHub f nF) (nF s)) |
| 68 | + : Path (P (K1-point G)) (K1-ind G P pPoint pPath pCoher nHub nSpoke (K1-point G)) pPoint |
| 69 | + := idp (P (K1-point G)) pPoint |
0 commit comments