Zulip Chat Archive

Stream: new members

Topic: Arbitrary reordering under universal quantifier


Rish Vaishnav (Jan 31 2022 at 16:17):

Is there an easy way to prove the following?

lemma test1 (X Y : Type*) (XS : set X) (YS : set Y) (f : Y → X)
  (h : ∀ (P : X → Prop), (∀ x ∈ XS, P x) ↔ (∀ y ∈ YS, P (f y))) (P : X → X → Prop)
  : (∀ x1 x2 (ha : x1 ∈ XS) (hb : x2 ∈ XS), P x1 x2) ↔ (∀ y1 y2 (ha : y1 ∈ YS) (hb : y2 ∈ YS), P (f y1) (f y2)) :=
  by sorry

If I simply reorder the hypotheses on both sides of the goal, simp_rw handles it:

lemma test2 (X Y : Type*) (XS : set X) (YS : set Y) (f : Y → X)
  (h : ∀ (P : X → Prop), (∀ x ∈ XS, P x) ↔ (∀ y ∈ YS, P (f y))) (P : X → X → Prop)
  : (∀ x1 (ha: x1 ∈ XS) x2 (hb : x2 ∈ XS), P x1 x2) ↔ (∀ y1 (ha : y1 ∈ YS) y2 (hb : y2 ∈ YS), P (f y1) (f y2)) :=
  by simp_rw h

Patrick Johnson (Jan 31 2022 at 16:39):

docs#ball_mem_comm

lemma test1 (X Y : Type*) (XS : set X) (YS : set Y) (f : Y → X)
  (h : ∀ (P : X → Prop), (∀ x ∈ XS, P x) ↔ (∀ y ∈ YS, P (f y))) (P : X → X → Prop)
  : (∀ x1 x2 (ha : x1 ∈ XS) (hb : x2 ∈ XS), P x1 x2) ↔ (∀ y1 y2 (ha : y1 ∈ YS) (hb : y2 ∈ YS), P (f y1) (f y2)) :=
by simp [ball_mem_comm.symm, h]

Last updated: Feb 28 2026 at 14:05 UTC