@@ -10,6 +10,7 @@ open import Cat.Diagram.Pullback.Along
1010open import Cat.Diagram.Pullback
1111open import Cat.Functor.Morphism
1212open import Cat.Diagram.Product
13+ open import Cat.Morphism.Lifts
1314open import Cat.Diagram.Omega
1415open import Cat.Functor.Hom
1516open import Cat.Prelude hiding (Ω; true)
@@ -65,9 +66,7 @@ relative to monomorphisms in $\cC$.
6566
6667``` agda
6768is-injective : (A : Ob) → Type _
68- is-injective A =
69- ∀ {X Y} (i : Hom X A) (m : X ↪ Y)
70- → ∃[ r ∈ Hom Y A ] (r ∘ m .mor ≡ i)
69+ is-injective A = Lifts C Monos A
7170```
7271
7372Classically, injective objects are usually very easy to find. For example.
@@ -98,10 +97,10 @@ epis. This directly gives us the factorization we need!
9897preserves-epis→injective
9998 : preserves-epis (Hom-into C A)
10099 → is-injective A
101- preserves-epis→injective {A = A} hom-epi {X = X } {Y = Y} i m =
100+ preserves-epis→injective {A = A} hom-epi {X} {Y} m m-monic i =
102101 epi→surjective (el! (Hom Y A)) (el! (Hom X A))
103- (_∘ m .mor )
104- (λ {c} → hom-epi (m . monic) {c = c})
102+ (_∘ m)
103+ (λ {c} → hom-epi m- monic {c = c})
105104 i
106105```
107106
@@ -122,7 +121,7 @@ injective→preserves-epis inj {f = m} m-mono g h p =
122121 g (r ∘ m) ≡⟨ p $ₚ r ⟩
123122 h (r ∘ m) ≡⟨ ap h r-retract ⟩
124123 h k ∎)
125- (inj k (make-mono m m-mono) )
124+ (inj m m-mono k )
126125```
127126
128127## Closure of injectives
@@ -180,9 +179,9 @@ $\pi_2 \circ \langle r_1 , r_2 \rangle \circ m = r_2 \circ m = i$, so $\langle r
180179is a valid extension.
181180
182181``` agda
183- product-injective {π₁ = π₁} {π₂ = π₂} A-inj B-inj prod i m = do
184- (r₁ , r₁-factor) ← A-inj (π₁ ∘ i) m
185- (r₂ , r₂-factor) ← B-inj (π₂ ∘ i) m
182+ product-injective {π₁ = π₁} {π₂ = π₂} A-inj B-inj prod m m-monic i = do
183+ (r₁ , r₁-factor) ← A-inj m m-monic (π₁ ∘ i)
184+ (r₂ , r₂-factor) ← B-inj m m-monic (π₂ ∘ i)
186185 pure (⟨ r₁ , r₂ ⟩ , unique₂ (pulll π₁∘⟨⟩) (pulll π₂∘⟨⟩) (sym r₁-factor) (sym r₂-factor))
187186 where open is-product prod
188187```
@@ -223,11 +222,11 @@ each extension $r_i$ for each $i : I$, whereas we need the mere existence of
223222but we can avoid this by requiring that $I$ be set-projective.
224223
225224``` agda
226- indexed-coproduct-projective {Aᵢ = Aᵢ} {π = π} Idx-pro Aᵢ-inj prod {X = X } {Y = Y} ι m = do
225+ indexed-coproduct-projective {Aᵢ = Aᵢ} {π = π} Idx-pro Aᵢ-inj prod {X} {Y} m m-monic ι = do
227226 r ← Idx-pro
228- (λ i → Σ[ rᵢ ∈ Hom Y (Aᵢ i) ] rᵢ ∘ m .mor ≡ π i ∘ ι)
227+ (λ i → Σ[ rᵢ ∈ Hom Y (Aᵢ i) ] rᵢ ∘ m ≡ π i ∘ ι)
229228 (λ _ → hlevel 2)
230- (λ i → Aᵢ-inj i (π i ∘ ι) m )
229+ (λ i → Aᵢ-inj i m m-monic (π i ∘ ι))
231230 pure (tuple (λ i → r i .fst) , unique₂ (λ i → pulll commute ∙ r i .snd))
232231 where open is-indexed-product prod
233232```
@@ -241,8 +240,8 @@ section→injective
241240 → (r : Hom A S)
242241 → has-section r
243242 → is-injective S
244- section→injective A-inj r s i m = do
245- (t , t-factor) ← A-inj (s .section ∘ i) m
243+ section→injective A-inj r s m m-monic i = do
244+ (t , t-factor) ← A-inj m m-monic (s .section ∘ i)
246245 pure (r ∘ t , pullr t-factor ∙ cancell (s .is-section))
247246```
248247
@@ -272,7 +271,7 @@ consider the following extension problem.
272271~~~
273272
274273``` agda
275- Ω-injective {Ω = Ω} {true = true} pullbacks Ω-subobj {X} {Y} i m =
274+ Ω-injective {Ω = Ω} {true = true} pullbacks Ω-subobj {X} {Y} m m-monic i =
276275 pure extension
277276 where
278277 open is-generic-subobject Ω-subobj
@@ -312,7 +311,7 @@ $X$, which we can then compose with $m$ to get a subobject of $Y$.
312311 [i] = named i
313312
314313 m∩[i] : Subobject Y
315- m∩[i] = cutₛ (∘-is-monic (m . monic) ([i] .monic))
314+ m∩[i] = cutₛ (∘-is-monic m- monic ([i] .monic))
316315```
317316
318317We can then classify our subobject $m \circ [ i] $ to get a map
@@ -364,13 +363,13 @@ This means that $\mathrm{name}(m \circ [i]) \circ m = i$, which completes
364363the proof.
365364
366365``` agda
367- extension : Σ[ i* ∈ Hom Y Ω ] i* ∘ m .mor ≡ i
366+ extension : Σ[ i* ∈ Hom Y Ω ] i* ∘ m ≡ i
368367 extension .fst = name m∩[i]
369368 extension .snd =
370369 Ω-unique₂ $
371370 paste-is-pullback-along
372371 (classifies m∩[i])
373- (is-pullback-along-monic (m . monic) )
372+ (is-pullback-along-monic m- monic)
374373 refl
375374```
376375
0 commit comments