@@ -35,53 +35,15 @@ SuccStr {ℓ = ℓ} = TypeWithStr ℓ λ A → (A → A)
35
35
36
36
-- Exactness except the intersecting Group is only propositionally equal
37
37
isWeakExactAt : {A B B' C : Group ℓ} (f : GroupHom A B) (g : GroupHom B' C) (p : B ≡ B') → Type ℓ
38
- isWeakExactAt {ℓ = ℓ} {B = B} {B' = B'} f g p =
39
- (b : ⟨ B ⟩) → isInKer g ( subst (λ (a : Σ (Type ℓ) GroupStr) → fst a) p b) ≃ isInIm f b
38
+ isWeakExactAt {ℓ = ℓ} {B = B} {B' = B'} f g p = (b : ⟨ B ⟩) → (isInKer g (tr b) → isInIm f b) × (isInIm f b → isInKer g (tr b)) where
39
+ tr = λ (b : ⟨ B ⟩) → subst (λ (a : Σ (Type ℓ) GroupStr) → fst a) p b
40
40
41
41
isExactAt : {A B C : Group ℓ} (f : GroupHom A B) (g : GroupHom B C) → Type ℓ
42
- isExactAt {B = B} f g = (b : ⟨ B ⟩) → isInKer g b ≃ isInIm f b
43
-
44
- -- TODO: Is exactness preserved across association?
42
+ isExactAt {B = B} f g = (b : ⟨ B ⟩) → (isInKer g b → isInIm f b) × (isInIm f b → isInKer g b)
45
43
46
44
isWeakExactAtRefl : {A B C : Group ℓ} (f : GroupHom A B) (g : GroupHom B C)
47
45
→ isWeakExactAt f g refl ≡ isExactAt f g
48
- isWeakExactAtRefl {ℓ = ℓ} {B = B} f g i = (b : ⟨ B ⟩) → (isInKer g (transportRefl b i)) ≃ (isInIm f b)
49
-
50
- -- Exact sequence based on vec
51
- module _ where
52
- 2+_ = λ (n : ℕ) → suc (suc n)
53
- 3+_ = λ (n : ℕ) → suc (suc (suc n))
54
-
55
- data HomVec {ℓ : Level} : {n : ℕ} → Vec (Group ℓ) (2+ n) → Type (ℓ-suc ℓ) where
56
- -- This needs to at least have 1 group in it or else the suc case doesn't have
57
- -- a previous group to index by
58
- end : {A B : Group ℓ} → GroupHom A B → HomVec {n = 0 } (B ∷ A ∷ [])
59
- cons : {n : ℕ} {gv : Vec (Group ℓ) (suc n)} {A B : Group ℓ}
60
- → GroupHom A B → HomVec {n = n} (A ∷ gv) → HomVec {n = suc n} (B ∷ A ∷ gv)
61
-
62
- data ExactSeqVec {ℓ : Level} : {n : ℕ} → {gs : Vec (Group ℓ) (3+ n)} → HomVec gs → Type (ℓ-suc ℓ) where
63
- nil : {A B C : Group ℓ} {f : GroupHom A B} {g : GroupHom B C}
64
- → isExactAt f g → ExactSeqVec (cons g (end f))
65
- cons : {n : ℕ} {gv : Vec (Group ℓ) (suc n)} {A B C : Group ℓ}
66
- → {f : GroupHom A B} {g : GroupHom B C} {hv : HomVec (A ∷ gv)}
67
- → isExactAt f g
68
- → ExactSeqVec (cons f hv) → ExactSeqVec (cons g (cons f hv))
69
-
70
- -- Exact sequence over successor structures
71
- module _ where
72
- exactSeq : (ss @ (N , succ) : SuccStr {ℓ = ℓ})
73
- → (gSeq : (gIdx : N) → Group ℓ')
74
- → (hSeq : (hIdx : N) → GroupHom (gSeq hIdx) (gSeq (succ hIdx)))
75
- → Type (ℓ-max ℓ ℓ')
76
- exactSeq (N , succ) gSeq hSeq = (pIdx : N) → isExactAt (hSeq pIdx) (hSeq (succ pIdx))
77
-
78
- module _ where
79
- 0→_ : (A : Group ℓ) → GroupHom (UnitGroup {ℓ}) A
80
- 0→ A = let open GroupStr (A .snd) in
81
- (λ _ → 1g) , record { pres· = λ x y → sym (·IdR 1g) ; pres1 = refl ; presinv = λ x → sym (·InvL 1g) ∙ ·IdR (inv 1g) }
82
-
83
- _→0 : (A : Group ℓ) → GroupHom A (UnitGroup {ℓ})
84
- A →0 = (λ _ → tt*) , record { pres· = λ x y → refl ; pres1 = refl ; presinv = λ x → refl }
46
+ isWeakExactAtRefl {ℓ = ℓ} {B = B} f g i = (b : ⟨ B ⟩) → (isInKer g (transportRefl b i) → isInIm f b) × (isInIm f b → isInKer g (transportRefl b i))
85
47
86
48
SES→isEquiv : {L R : Group ℓ-zero}
87
49
→ {G : Group ℓ} {H : Group ℓ'}
0 commit comments