Zulip Chat Archive

Stream: Is there code for X?

Topic: diagram chase thingy


Alex Kontorovich (Apr 16 2021 at 21:26):

Surely this exists already in mathlib? (And if not, where would it reasonably go?)

import data.set.basic

lemma commutative_diagram_thingy {α β A B : Type*} {f : α  β} {g : A  B} {mA : A  α} {mB : B  β}
   (h : f  mA = mB  g) :  K : set B, mA '' (g ⁻¹' K)  f ⁻¹' (mB '' K) :=
begin
  rintros K x a , ha₁, rfl⟩,
  change (f  mA) a  _,
  rw h,
  refine g a, ha₁, rfl⟩,
end

Adam Topaz (Apr 16 2021 at 21:37):

Does tidy solve this goal?

Adam Topaz (Apr 16 2021 at 21:39):

Oh it wont

Alex Kontorovich (Apr 16 2021 at 21:39):

Almost! Just doesn't know that the diagram commutes?... How do I tell it?

Adam Topaz (Apr 16 2021 at 21:40):

Maybe you can change the hypothesis to be "for all x, blah blah"?

Adam Topaz (Apr 16 2021 at 21:52):

import data.set.basic

lemma commutative_diagram_thingy {α β A B : Type*} {f : α  β} {g : A  B} {mA : A  α} {mB : B  β}
   (h :  x, f (mA x) = mB (g x)) :  K : set B, mA '' (g ⁻¹' K)  f ⁻¹' (mB '' K) :=
by tidy

David Wärn (Apr 16 2021 at 22:10):

This is also not so bad to do by hand if you use lemmas instead of unfolding definitions

import data.set.basic

lemma commutative_diagram_thingy {α β A B : Type*} {f : α  β} {g : A  B} {mA : A  α} {mB : B  β}
   (h : f  mA = mB  g) :  K : set B, mA '' (g ⁻¹' K)  f ⁻¹' (mB '' K) :=
begin
  intro K,
  rw [set.image_subset_iff, set.image_comp, h, set.image_comp],
  apply set.image_subset,
  apply set.image_preimage_subset,
end

Last updated: Dec 20 2023 at 11:08 UTC