Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 178c09d

Browse files
kim-emrwbarton
authored andcommitted
feat(natural_isomorphism): componentwise isos are isos (#671)
1 parent 9a8f1b0 commit 178c09d

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/category_theory/isomorphism.lean

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,16 @@ def inv (f : X ⟶ Y) [is_iso f] := is_iso.inv f
9292

9393
namespace is_iso
9494

95-
@[simp] def hom_inv_id (f : X ⟶ Y) [is_iso f] : f ≫ category_theory.inv f = 𝟙 X :=
95+
@[simp] lemma hom_inv_id (f : X ⟶ Y) [is_iso f] : f ≫ category_theory.inv f = 𝟙 X :=
9696
is_iso.hom_inv_id' f
97-
@[simp] def inv_hom_id (f : X ⟶ Y) [is_iso f] : category_theory.inv f ≫ f = 𝟙 Y :=
97+
@[simp] lemma inv_hom_id (f : X ⟶ Y) [is_iso f] : category_theory.inv f ≫ f = 𝟙 Y :=
9898
is_iso.inv_hom_id' f
9999

100+
@[simp] lemma hom_inv_id_assoc {Z} (f : X ⟶ Y) [is_iso f] (g : X ⟶ Z) : f ≫ category_theory.inv f ≫ g = g :=
101+
by rw [←category.assoc, hom_inv_id, category.id_comp]
102+
@[simp] lemma inv_hom_id_assoc {Z} (f : X ⟶ Y) [is_iso f] (g : Y ⟶ Z) : category_theory.inv f ≫ f ≫ g = g :=
103+
by rw [←category.assoc, inv_hom_id, category.id_comp]
104+
100105
instance (X : C) : is_iso (𝟙 X) :=
101106
{ inv := 𝟙 X }
102107

src/category_theory/natural_isomorphism.lean

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,16 @@ begin erw [nat_trans.naturality, ←category.assoc, is_iso.hom_inv_id, category.
7171
(α.hom.app X) ≫ (G.map f) ≫ (α.inv.app Y) = F.map f :=
7272
begin erw [nat_trans.naturality, ←category.assoc, is_iso.hom_inv_id, category.id_comp] end
7373

74+
instance is_iso_of_is_iso_app (α : F ⟶ G) [∀ X : C, is_iso (α.app X)] : is_iso α :=
75+
{ inv :=
76+
{ app := λ X, inv (α.app X),
77+
naturality' := λ X Y f,
78+
by simpa using congr_arg (λ f, inv (α.app X) ≫ (f ≫ inv (α.app Y))) (α.naturality f).symm } }
79+
7480
def of_components (app : ∀ X : C, (F.obj X) ≅ (G.obj X))
7581
(naturality : ∀ {X Y : C} (f : X ⟶ Y), (F.map f) ≫ ((app Y).hom) = ((app X).hom) ≫ (G.map f)) :
7682
F ≅ G :=
77-
{ hom := { app := λ X, ((app X).hom), },
78-
inv :=
79-
{ app := λ X, ((app X).inv),
80-
naturality' := λ X Y f,
81-
by simpa using congr_arg (λ f, (app X).inv ≫ (f ≫ (app Y).inv)) (naturality f).symm } }
83+
as_iso { app := λ X, (app X).hom }
8284

8385
@[simp] def of_components.app (app' : ∀ X : C, (F.obj X) ≅ (G.obj X)) (naturality) (X) :
8486
app (of_components app' naturality) X = app' X :=

0 commit comments

Comments
 (0)