Zulip Chat Archive
Stream: Polynomial Freiman-Ruzsa conjecture
Topic: Helper lemma for (conditional) Ruzsa distance
Paul Lezeau (Nov 28 2023 at 20:01):
In the proof of the Bound on distance increments, one needs to show that where are random variables, , and .
Edit: is some -valued random variable.
The proof mentions this might require a helper lemma for Ruzsa distances, which I am guessing is something of the form
lemma ruzsa_helper_lemma {A B C : Ω → G} {X : Ω' → G}
(hB : Measurable B) (hC : Measurable C) (hA : Measurable A)
(H : A = B + C) : d[X # B | A] = d[X # C | A]
(with some extra assumptions about e.g. measurability).
My attempts at proving this so far have relied on using cond_rdist'_eq_sum
, but I haven't been able to make much progress past that point. Would anyone have some suggestions on which parts of the API I should be working with?
Arend Mellendijk (Nov 28 2023 at 21:19):
I think some variant of pfr#cond_rdist_of_inj_map for cond_rdist'
is what you're looking for. I think you can deduce the half-dependent version from the dependent version with pfr#cond_rdist_of_const (though that might come with a non-empty assumption)
Paul Lezeau (Nov 29 2023 at 08:31):
Thanks for the advice, I'll have a go at that!
Rémy Degenne (Nov 29 2023 at 22:42):
@Paul Lezeau would an independence hypothesis be fine in your helper lemma? Also, would it be sufficient for your use case if X has the same type as A,B and C? If yes, here is an almost complete proof:
lemma ruzsa_helper_lemma'
[IsProbabilityMeasure (ℙ : Measure Ω)] {X B C : Ω → G}
(hX : Measurable X) (hB : Measurable B) (hC : Measurable C)
(h_indep : IndepFun X (⟨B, C⟩)) :
d[X # B | B + C] = d[X # C | B + C] := by
let π : G × G →+ G :=
{ toFun := fun x ↦ x.2 - x.1
map_zero' := by simp
map_add' := fun a b ↦ by simp only [Prod.snd_add, Prod.fst_add,
ElementaryAddCommGroup.sub_eq_add]; abel }
let Y : Fin 4 → Ω → G := ![-X, C, fun ω ↦ 0, B + C]
have hY_meas : ∀ i, Measurable (Y i) := by sorry
calc d[X # B | B + C]
= d[X | fun ω : Ω ↦ (0 : G) # B | B + C] := by rw [cond_rdist_of_const hX]
_ = d[π ∘ ⟨-X, fun ω : Ω ↦ (0 : G)⟩ | fun ω : Ω ↦ (0 : G) # π ∘ ⟨C, B + C⟩ | B + C] := by
congr
· ext1 ω; simp
· ext1 ω
simp only [AddMonoidHom.coe_mk, ZeroHom.coe_mk, Function.comp_apply, Pi.add_apply]
abel
_ = d[π ∘ ⟨Y 0, Y 2⟩ | Y 2 # π ∘ ⟨Y 1, Y 3⟩ | Y 3] := by congr
_ = d[-X | fun ω : Ω ↦ (0 : G) # C | B + C] := by
rw [cond_rdist_of_inj_map' _ _ hY_meas π (fun _ ↦ sub_right_injective)]
· congr
· sorry -- ⊢ IndepFun (⟨Y 0, Y 2⟩) (⟨Y 1, Y 3⟩) -- deduce it from h_indep
_ = d[-X # C | B + C] := by rw [cond_rdist_of_const]; exact hX.neg
_ = d[X # C | B + C] := by -- because ElementaryAddCommGroup G 2
congr
simp
cond_rdist_of_inj_map'
is the generalization of cond_rdist_of_inj_map
with π : G × G →+ G'
for some other group G'
instead of the special case π : G × G →+ G × G
we have now (and in the code above G' = G
). If the added assumptions are fine for the use you want to make of the lemma, I'll PR that.
Rémy Degenne (Nov 29 2023 at 23:04):
By the way I have no idea how to prove the measurability goal about Y
because I don't know how to get to 4 goals corresponding to i=0
, i=1
,i=2
and i=3
. I never work with Fin
. How would I do that?
Damiano Testa (Nov 29 2023 at 23:07):
Does fin_cases i
help?
Rémy Degenne (Nov 29 2023 at 23:10):
Yes, that's exactly what I was looking for. Thanks!
Paul Lezeau (Nov 30 2023 at 07:45):
Rémy Degenne said:
Paul Lezeau would an independence hypothesis be fine in your helper lemma? Also, would it be sufficient for your use case if X has the same type as A,B and C? If yes, here is an almost complete proof:
lemma ruzsa_helper_lemma' [IsProbabilityMeasure (ℙ : Measure Ω)] {X B C : Ω → G} (hX : Measurable X) (hB : Measurable B) (hC : Measurable C) (h_indep : IndepFun X (⟨B, C⟩)) : d[X # B | B + C] = d[X # C | B + C] := by let π : G × G →+ G := { toFun := fun x ↦ x.2 - x.1 map_zero' := by simp map_add' := fun a b ↦ by simp only [Prod.snd_add, Prod.fst_add, ElementaryAddCommGroup.sub_eq_add]; abel } let Y : Fin 4 → Ω → G := ![-X, C, fun ω ↦ 0, B + C] have hY_meas : ∀ i, Measurable (Y i) := by sorry calc d[X # B | B + C] = d[X | fun ω : Ω ↦ (0 : G) # B | B + C] := by rw [cond_rdist_of_const hX] _ = d[π ∘ ⟨-X, fun ω : Ω ↦ (0 : G)⟩ | fun ω : Ω ↦ (0 : G) # π ∘ ⟨C, B + C⟩ | B + C] := by congr · ext1 ω; simp · ext1 ω simp only [AddMonoidHom.coe_mk, ZeroHom.coe_mk, Function.comp_apply, Pi.add_apply] abel _ = d[π ∘ ⟨Y 0, Y 2⟩ | Y 2 # π ∘ ⟨Y 1, Y 3⟩ | Y 3] := by congr _ = d[-X | fun ω : Ω ↦ (0 : G) # C | B + C] := by rw [cond_rdist_of_inj_map' _ _ hY_meas π (fun _ ↦ sub_right_injective)] · congr · sorry -- ⊢ IndepFun (⟨Y 0, Y 2⟩) (⟨Y 1, Y 3⟩) -- deduce it from h_indep _ = d[-X # C | B + C] := by rw [cond_rdist_of_const]; exact hX.neg _ = d[X # C | B + C] := by -- because ElementaryAddCommGroup G 2 congr simp
cond_rdist_of_inj_map'
is the generalization ofcond_rdist_of_inj_map
withπ : G × G →+ G'
for some other groupG'
instead of the special caseπ : G × G →+ G × G
we have now (and in the code aboveG' = G
). If the added assumptions are fine for the use you want to make of the lemma, I'll PR that.
Oh wow that looks great! In my case assuming some independence should be fine. I would however need to be defined on a different type - would that modification be troublesome?
Rémy Degenne (Nov 30 2023 at 07:55):
I just finished the adaptation to different spaces. I'll PR it now.
Paul Lezeau (Nov 30 2023 at 07:56):
Rémy Degenne said:
I just finished the adaptation to different spaces. I'll PR it now.
Ah wonderful I think that's exactly what I need! Thanks so much!
Rémy Degenne (Nov 30 2023 at 07:58):
https://github.com/teorth/pfr/pull/122
Last updated: Dec 20 2023 at 11:08 UTC