@@ -325,13 +325,13 @@ def Cofan.isColimitTrans {X : α → C} (c : Cofan X) (hc : IsColimit c)
325325/-- Construct a morphism between categorical products (indexed by the same type)
326326from a family of morphisms between the factors.
327327-/
328- abbrev Pi.map {f g : β → C} [HasProduct f] [HasProduct g] (p : ∀ b, f b ⟶ g b) : ∏ᶜ f ⟶ ∏ᶜ g :=
328+ def Pi.map {f g : β → C} [HasProduct f] [HasProduct g] (p : ∀ b, f b ⟶ g b) : ∏ᶜ f ⟶ ∏ᶜ g :=
329329 limMap (Discrete.natTrans fun X => p X.as)
330330
331331set_option backward.isDefEq.respectTransparency false in
332- @[reassoc (attr := simp high ), elementwise nosimp]
332+ @[reassoc (attr := simp), elementwise nosimp]
333333lemma Pi.map_π {f g : β → C} [HasProduct f] [HasProduct g] (p : ∀ b, f b ⟶ g b) (b : β) :
334- Pi.map p ≫ Pi.π g b = Pi.π f b ≫ p b := by simp
334+ Pi.map p ≫ Pi.π g b = Pi.π f b ≫ p b := by simp [Pi.map]
335335
336336@[simp]
337337lemma Pi.map_id {f : α → C} [HasProduct f] : Pi.map (fun a => 𝟙 (f a)) = 𝟙 (∏ᶜ f) := by
@@ -390,9 +390,19 @@ lemma Pi.map'_eq {f : α → C} {g : β → C} [HasProduct f] [HasProduct g] {p
390390/-- Construct an isomorphism between categorical products (indexed by the same type)
391391from a family of isomorphisms between the factors.
392392-/
393- abbrev Pi.mapIso {f g : β → C} [HasProductsOfShape β C] (p : ∀ b, f b ≅ g b) : ∏ᶜ f ≅ ∏ᶜ g :=
393+ def Pi.mapIso {f g : β → C} [HasProductsOfShape β C] (p : ∀ b, f b ≅ g b) : ∏ᶜ f ≅ ∏ᶜ g :=
394394 lim.mapIso (Discrete.natIso fun X => p X.as)
395395
396+ @[reassoc (attr := simp)]
397+ lemma Pi.mapIso_hom_π {f g : β → C} [HasProductsOfShape β C] (p : ∀ b, f b ≅ g b) (b : β) :
398+ (Pi.mapIso p).hom ≫ π _ _ = π _ _ ≫ (p b).hom :=
399+ limMap_π _ _
400+
401+ @[reassoc (attr := simp)]
402+ lemma Pi.mapIso_inv_π {f g : β → C} [HasProductsOfShape β C] (p : ∀ b, f b ≅ g b) (b : β) :
403+ (Pi.mapIso p).inv ≫ π _ _ = π _ _ ≫ (p b).inv :=
404+ limMap_π _ _
405+
396406instance Pi.map_isIso {f g : β → C} [HasProductsOfShape β C] (p : ∀ b, f b ⟶ g b)
397407 [∀ b, IsIso <| p b] : IsIso <| Pi.map p :=
398408 inferInstanceAs (IsIso (Pi.mapIso (fun b ↦ asIso (p b))).hom)
@@ -445,14 +455,14 @@ end
445455/-- Construct a morphism between categorical coproducts (indexed by the same type)
446456from a family of morphisms between the factors.
447457-/
448- abbrev Sigma.map {f g : β → C} [HasCoproduct f] [HasCoproduct g] (p : ∀ b, f b ⟶ g b) :
458+ def Sigma.map {f g : β → C} [HasCoproduct f] [HasCoproduct g] (p : ∀ b, f b ⟶ g b) :
449459 ∐ f ⟶ ∐ g :=
450460 colimMap (Discrete.natTrans fun X => p X.as)
451461
452462set_option backward.isDefEq.respectTransparency false in
453- @[reassoc (attr := simp high )]
463+ @[reassoc (attr := simp)]
454464lemma Sigma.ι_map {f g : β → C} [HasCoproduct f] [HasCoproduct g] (p : ∀ b, f b ⟶ g b) (b : β) :
455- Sigma.ι f b ≫ Sigma.map p = p b ≫ Sigma.ι g b := by simp
465+ Sigma.ι f b ≫ Sigma.map p = p b ≫ Sigma.ι g b := by simp [Sigma.map]
456466
457467@[simp]
458468lemma Sigma.map_id {f : α → C} [HasCoproduct f] : Sigma.map (fun a => 𝟙 (f a)) = 𝟙 (∐ f) := by
@@ -514,9 +524,19 @@ lemma Sigma.map'_eq {f : α → C} {g : β → C} [HasCoproduct f] [HasCoproduct
514524/-- Construct an isomorphism between categorical coproducts (indexed by the same type)
515525from a family of isomorphisms between the factors.
516526-/
517- abbrev Sigma.mapIso {f g : β → C} [HasCoproductsOfShape β C] (p : ∀ b, f b ≅ g b) : ∐ f ≅ ∐ g :=
527+ def Sigma.mapIso {f g : β → C} [HasCoproductsOfShape β C] (p : ∀ b, f b ≅ g b) : ∐ f ≅ ∐ g :=
518528 colim.mapIso (Discrete.natIso fun X => p X.as)
519529
530+ @[reassoc (attr := simp)]
531+ lemma Sigma.ι_mapIso_hom {f g : β → C} [HasCoproductsOfShape β C] (p : ∀ b, f b ≅ g b) (b : β) :
532+ ι _ _ ≫ (Sigma.mapIso p).hom = (p b).hom ≫ ι _ _ :=
533+ ι_colimMap _ _
534+
535+ @[reassoc (attr := simp)]
536+ lemma Sigma.ι_mapIso_inv {f g : β → C} [HasCoproductsOfShape β C] (p : ∀ b, f b ≅ g b) (b : β) :
537+ ι _ _ ≫ (Sigma.mapIso p).inv = (p b).inv ≫ ι _ _ :=
538+ ι_colimMap _ _
539+
520540instance Sigma.map_isIso {f g : β → C} [HasCoproductsOfShape β C] (p : ∀ b, f b ⟶ g b)
521541 [∀ b, IsIso <| p b] : IsIso (Sigma.map p) :=
522542 inferInstanceAs (IsIso (Sigma.mapIso (fun b ↦ asIso (p b))).hom)
0 commit comments