Zulip Chat Archive
Stream: new members
Topic: prove that parallelPair commutes with functor?
Shanghe Chen (May 20 2024 at 17:13):
Hi in a recent exercise I reached a situation like:
import Mathlib.CategoryTheory.Iso
import Mathlib.CategoryTheory.Limits.Shapes.Equalizers
import Mathlib.CategoryTheory.Limits.Shapes.FiniteLimits
noncomputable section
universe v u v' u'
set_option autoImplicit false
-- set_option pp.all true
open CategoryTheory Functor Limits
variable {C: Type u} [Category.{v} C]
variable {D: Type u'} [Category.{v'} D]
variable [HasFiniteLimits D]
variable (F: C ⥤ D)
variable (X Y : C) (f g : X ⟶ Y)
example : (parallelPair f g) ⋙ F ≅ (parallelPair (F.map f) (F.map g)) := by
sorry
example : limit ((parallelPair f g) ⋙ F) ≅ limit (parallelPair (F.map f) (F.map g)) := by
sorry
I tried but failed to prove this. Any idea please? the limit
version should be enough for me but rewriting parallePair
or using eqToIso
seems makeing the goal more complicated.
Andrew Yang (May 20 2024 at 17:35):
Maybe docs#CategoryTheory.Limits.parallelPair.ext ?
Andrew Yang (May 20 2024 at 17:38):
Or
example : (parallelPair f g) ⋙ F ≅ (parallelPair (F.map f) (F.map g)) :=
CategoryTheory.Limits.diagramIsoParallelPair _
Shanghe Chen (May 20 2024 at 17:41):
Thank you very much! Yeah the diagramIsoParallelPair
is very nice!
Shanghe Chen (May 21 2024 at 13:06):
Hi I found that it can be proved equal using CategoryTheory.Functor.ext
directly, that chained <;>
using simp
prove subgoals in a bunch:
import Mathlib.CategoryTheory.Iso
import Mathlib.CategoryTheory.EqToHom
import Mathlib.CategoryTheory.Limits.Shapes.Equalizers
import Mathlib.CategoryTheory.Limits.Shapes.FiniteLimits
noncomputable section
universe v u v' u'
set_option autoImplicit false
-- set_option pp.all true
open CategoryTheory Functor Limits
variable {C: Type u} [Category.{v} C]
variable {D: Type u'} [Category.{v'} D]
variable [HasFiniteLimits D]
variable (F: C ⥤ D)
variable (X Y : C) (f g : X ⟶ Y)
example : (parallelPair f g) ⋙ F = (parallelPair (F.map f) (F.map g)) := by
apply CategoryTheory.Functor.ext
rintro (_|_|_) <;> rintro (_|_|_) <;> rintro f <;> cases f <;> simp
rintro (_|_|_) <;> simp
example : limit ((parallelPair f g) ⋙ F) = limit (parallelPair (F.map f) (F.map g)) := by
congr 1
apply CategoryTheory.Functor.ext
rintro (_|_|_) <;> rintro (_|_|_) <;> rintro f <;> cases f <;> simp
rintro (_|_|_) <;> simp
Shanghe Chen (May 21 2024 at 13:07):
Don’t know if it’s a good practice for using CategoryTheory.Functor.ext
or not but the equality rather than isomorphism seems working more convenient in my case :tada:
Last updated: May 02 2025 at 03:31 UTC