-
Notifications
You must be signed in to change notification settings - Fork 1
/
AutGroup.agda
86 lines (63 loc) · 2.64 KB
/
AutGroup.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
{-# OPTIONS --without-K #-}
module AutGroup where
open import lib.Basics
open import lib.NType2
open import lib.NConnected
open import lib.types.BAut
open import lib.types.Sigma
open import lib.types.Truncation
Aut : ∀ {i} → Type i → Type (lsucc i)
Aut A = A == A
pAut : ∀ {i} → Type i → Ptd (lsucc i)
de⊙ (pAut A) = Aut A
pt (pAut A) = idp
-- BAut : ∀ {i} → Type i → Type (lsucc i)
-- BAut {i} A = Σ (Type i) λ X → Trunc -1 (A == X)
-- pBAut : ∀ {i} → Type i → Ptd (lsucc i)
-- de⊙ (pBAut A) = BAut A
-- pt (pBAut A) = A , [ idp ]
EAut : ∀ {i} → Type i → Type (lsucc i)
EAut A = Σ (BAut A) λ X → fst X == A
pEAut : ∀ {i} → Type i → Ptd (lsucc i)
de⊙ (pEAut A) = EAut A
pt (pEAut A) = pt (pBAut A) , idp
instance
EAut-contr : ∀ {i} {A : Type i} → is-contr (EAut A)
EAut-contr {A = A} = has-level-in (pt (pEAut A) , EAut-contr-path) where
trunc-path : (p : Trunc -1 (A == A)) → [ idp ] == p
trunc-path = Trunc-elim λ q → prop-has-all-paths [ idp ] [ q ]
EAut-contr-path : (X : EAut A) → (A , [ idp ]) , idp == X
EAut-contr-path ((A , p) , idp) = pair= (pair= idp (trunc-path p)) {!!}
f : ∀ {i} {A : Type i} → Aut A → BAut A → EAut A
f p X@(A , q) = contr-center EAut-contr
-- if A is set, Aut A is set, so 0-connected
-- BAut A is 0-connected
-- hence Aut A × BAut A is 0-connected
g : ∀ {i} {A : Type i} → EAut A → Aut A × BAut A
g (X , p) = idp , X
f-g : ∀ {i} {A : Type i} (X : EAut A) → uncurry f (g X) == X
f-g X = contr-has-all-paths (uncurry f (g X)) X
-- g-f : ∀ {i} {A : Type i} (p : A == A) (X : BAut A) → g (f p X) == p , X
-- g-f p X@(A , q) = {!!}
g-f : ∀ {i} {A : Type i} (p : A == A) (X : BAut A) → [ g (f p X) ]₁ == [ p , X ]₁
g-f p X@(A , q) = Trunc-rec {{{!!}}} {!!} {!q!}
-- EAut : ∀ {i} → Type i → Type (lsucc i)
-- EAut {i} A = Σ (Type i) λ X → A == X
-- pEAut : ∀ {i} → Type i → Ptd (lsucc i)
-- de⊙ (pEAut A) = EAut A
-- pt (pEAut A) = A , idp
-- instance
-- EAut-contr : ∀ {i} {A : Type i} → is-contr (EAut A)
-- EAut-contr {A = A} = pathfrom-is-contr A
-- f : ∀ {i} {A : Type i} → Aut A → BAut A → EAut A
-- f p X@(A , q) = contr-center EAut-contr
-- g : ∀ {i} {A : Type i} → EAut A → Aut A × BAut A
-- g (X , p) = idp , X , [ p ]
-- f-g : ∀ {i} {A : Type i} (X : EAut A) → uncurry f (g X) == X
-- f-g X = contr-has-all-paths (uncurry f (g X)) X
-- -- if A is set, Aut A is set, so 0-connected
-- -- BAut A is 0-connected
-- -- hence Aut A × BAut A is 0-connected
-- -- path space is -1-connected
-- g-f : ∀ {i} {A : Type i} (p : A == A) (X : BAut A) → g (f p X) == p , X
-- g-f p X@(A , q) = {!!}