@@ -137,6 +137,12 @@ lemma lift_comm (F : over Y ⥤ over X)
137137 lift F h ⋙ mono_over.forget X = mono_over.forget Y ⋙ F :=
138138rfl
139139
140+ @[simp]
141+ lemma lift_obj_arrow {Y : D} (F : over Y ⥤ over X)
142+ (h : ∀ (f : mono_over Y), mono (F.obj ((mono_over.forget Y).obj f)).hom) (f : mono_over Y) :
143+ ((lift F h).obj f).arrow = (F.obj ((forget Y).obj f)).hom :=
144+ rfl
145+
140146/--
141147Monomorphisms over an object `f : over A` in an over category
142148are equivalent to monomorphisms over the source of `f`.
@@ -226,12 +232,26 @@ instance faithful_map (f : X ⟶ Y) [mono f] : faithful (map f) := {}.
226232/--
227233Isomorphic objects have equivalent `mono_over` categories.
228234-/
229- def map_iso {A B : C} (e : A ≅ B) : mono_over A ≌ mono_over B :=
235+ @[simps] def map_iso {A B : C} (e : A ≅ B) : mono_over A ≌ mono_over B :=
230236{ functor := map e.hom,
231237 inverse := map e.inv,
232238 unit_iso := ((map_comp _ _).symm ≪≫ eq_to_iso (by simp) ≪≫ map_id).symm,
233239 counit_iso := ((map_comp _ _).symm ≪≫ eq_to_iso (by simp) ≪≫ map_id) }
234240
241+ section
242+ variables (X)
243+
244+ /-- An equivalence of categories `e` between `C` and `D` induces an equivalence between
245+ `mono_over X` and `mono_over (e.functor.obj X)` whenever `X` is an object of `C`. -/
246+ @[simps] def congr (e : C ≌ D) : mono_over X ≌ mono_over (e.functor.obj X) :=
247+ { functor := lift (over.post e.functor) $ λ f, by { dsimp, apply_instance },
248+ inverse := (lift (over.post e.inverse) $ λ f, by { dsimp, apply_instance })
249+ ⋙ (map_iso (e.unit_iso.symm.app X)).functor,
250+ unit_iso := nat_iso.of_components (λ Y, iso_mk (e.unit_iso.app Y) (by tidy)) (by tidy),
251+ counit_iso := nat_iso.of_components (λ Y, iso_mk (e.counit_iso.app Y) (by tidy)) (by tidy) }
252+
253+ end
254+
235255section
236256variable [has_pullbacks C]
237257
0 commit comments