Zulip Chat Archive

Stream: Polynomial Freiman-Ruzsa conjecture

Topic: Outstanding tasks, version 8.0


Terence Tao (Dec 17 2023 at 18:29):

Time for another rollover! The previous outstanding tasks thread can be found here.

Now that entropy and Ruzsa distance is refactored to handle FiniteRange random variables rather than random variables taking values in a Fintype, we can begin to make more substantial progress on Chapter 11 of the blueprint (Weak PFR over the integers). In particular there are two preliminary lemmas (B.1 and B.2) that I had neglected to notice in the new blueprint whose statements are now formalized, and should be particularly easy to fill in, I think. For most of the remaining lemmas in the section (B.3-B.9), we need to first formalize the statements before proving them (tasks C.1-C.6, together with the two formalization tasks already claimed by @Paul Lezeau ).

A. Existing claims

  1. @Yaël Dillies is gradually porting various stable PFR files over to Mathlib. Expect frequent Mathlib bumps during this process. It should be possible to work on extensions concurrently with this porting.
  2. @Yaël Dillies and @Bhavik Mehta claim the proof of Balog-Szemeredi-Gowers
  3. @Eric Rodriguez claims Approximate homomorphism form of PFR.
  4. @Paul Lezeau claims the formalization of Torsion-free doubling and Torsion distance shrinking.
  5. @Paul Lezeau claims the API for dimension.

B. Outstanding proof formalization tasks:

  1. Distance from zero This should be an easy application of existing Ruzsa distance inequality machinery. Established by @Jonas Bayer
  2. Fibring inequality This should be an easy corollary of General fibring identity and existing entropy machinery. Established by @Jonas Bayer
  3. Projection entropy and distance An easy application of existing entropy inequalities.
  4. Torsion-free doubling This is similar to many other entropy inequalities already in PFR, though somewhat lengthy. Awaits formalization.
  5. Torsion distance shrinking Easy corollary of B.4. Awaits formalization.
  6. Apply entropic PFR Easy application of existing PFR lemmas.
  7. PFR projection One tricky thing is to locate a maximal subgroup H obeying a certain property, and show that the quotient is still an elementary abelian 2-group.
  8. Single fibres Involves some manipulations of finite sums, but nothing too intimidating I think.
  9. Asymmetric weak PFR Involves a strong induction, but should be doable.
  10. Symmetric weak PFR Easy corollary of B.9.
  11. Weak PFR over integers Easy corollary of B.9.

C. Outstanding documentation/blueprint/examples/statement formalization tasks:

  1. Apply entropic PFR Should be straightforward to formalize. Completed by @Terence Tao
  2. PFR projection Also straightforward. Completed by @Terence Tao
  3. Single fibres A bit messy, but straightforward. Completed by @Terence Tao
  4. Asymmetric weak PFR Straightforward to formalize. Completed by @Terence Tao
  5. Symmetric weak PFR Also straightforward. Completed by @Terence Tao
  6. Weak PFR over integers Also straightforward. Completed by @Terence Tao

D. Outstanding administrative tasks:

  1. Add example showcasing weak PFR to examples.lean. Completed by @Terence Tao
  2. Update HomPFR, ApproxHomPFR, examples.lean to accommodate the improvement of constants from 12 to 11. Completed by @Terence Tao

Paul Lezeau (Dec 19 2023 at 12:16):

By the way, just to avoid duplication of work, I should mention I'm also currently working on some API for dimension (and filling out the sorries)

Jonas Bayer (Dec 19 2023 at 15:53):

I'd like to claim 1. Distance from zero unless anyone else has started working on that.

Jonas Bayer (Dec 19 2023 at 16:31):

The claim is formalized with the additional assumption IsProbabilityMeasure μ'. Do we need the version with IsFiniteMeasure? This would require some API changes: entropy_const in a IsFiniteMeasure version and also a new Mathlib lemma that connects Measure.prod and multiplication of a measure by a constant.

Jonas Bayer (Dec 19 2023 at 16:35):

The proof is in https://github.com/TBUGTB/pfr, but before PRing I'd like to clean up some of the git history in my fork.

Terence Tao (Dec 19 2023 at 16:43):

(deleted)

Terence Tao (Dec 19 2023 at 16:56):

Jonas Bayer said:

The claim is formalized with the additional assumption IsProbabilityMeasure μ'. Do we need the version with IsFiniteMeasure? This would require some API changes: entropy_const in a IsFiniteMeasure version and also a new Mathlib lemma that connects Measure.prod and multiplication of a measure by a constant.

IsProbabilityMeasure should suffice for all PFR applications I think. If it can be cheaply extended to IsFiniteMeasure, that's great, but it's a somewhat low priority.

Jonas Bayer (Dec 20 2023 at 09:42):

It seems to me that the proof of B.3 (Projection entropy and distance) is a bit strange. For example, it wants to add up inequalities but there is only one.

My idea would be to move the lemma to the fibring file and use the Fibring inequality. Then it's just applying ent_of_indep_diff_lower and using that UU is uniform on HH.

I.e. I'd like to claim B.3 and could also update the proof in the blueprint if that is helpful.

Thomas Bloom (Dec 20 2023 at 14:09):

Yes, you're right - when I wrote the proof I was using the second equality as an inequality (i.e. X=Y implies X\leq Y), that's what I implicitly meant.

I like your proof, and it's certainly easier given the Fibring inequality has already been proved. Please do update the proof in the blueprint!

(There are probably other places, such as this, where I wrote down the most direct proof from first principles, following the Green-Manners-Tao paper, but given the other lemmas already proved for PFR there may well be shortcuts one can take.)

Paul Lezeau (Dec 21 2023 at 09:46):

Could I claim B.5?

Terence Tao (Dec 28 2023 at 20:41):

Just a heads up that I have started formalizing the tail end (B.9-B.11) of the weak PFR stuff; B.10 and B.11 were straightforward but B.9 is proving more challenging than anticipated (it took several hours, for instance, to show that if G is a free -module of rank n then the quotient group G/2G is an elementary abelian 2-group of cardinality 2^n), but I think I will be able to complete it.

In the course of doing so I found a number of minor typos in the specifications of the earlier lemmas in the preprint and had to make a few small changes (adding a countability hypothesis, changing strict inequality to equality, making some variables explicit instead of implicit, that sort of thing). This may have a small impact on @Jonas Bayer's formalization of B.3 and @Paul Lezeau's formalization of B.5.

Terence Tao (Dec 30 2023 at 21:16):

OK, B.9 is done, although it took a lot more adventures through the world of modules over the integers (and how to pass back and forth between them and abelian groups) than I expected.

In doing so I had to interact a little bit with @Paul Lezeau's dimension and dimension' API. I suspect that the current definition of dimension (the rank of the real span of A) is not equal to dimension' (which corresponds to affine rank rather than linear rank); for instance {1} in the integers has a dimension of 1 and a dimension' of zero. The relation between dimension and dimension' is not dimension A = dimension' A, but rather (I think) dimension (Set.prod {1} A) = dimension A (where Set.prod {1} A lives in ℤ × G).

It may be easier avoid tensoring with the reals entirely, and just define dimension A to be the rank (as an abelian group, or as a Z-module) of the (group or module) closure of A. I had some initial struggles with the API for modules in Mathlib but actually it's pretty comprehensive once I figured my way around, and one doesn't really need to have an ambient field to prove things.

Yaël Dillies (Dec 30 2023 at 21:32):

I must say I was surprised when tensoring with the reals was first mentioned. I too would expect it to be unnecessary.

Paul Lezeau (Dec 30 2023 at 22:48):

Ah great, I'm happy I don't have to prove the equality! The reason I did the formalization with the tensor product was to try and stay close to the blueprint (which first defines the dimension of A as the dimension of its span over the reals), but I was a bit confused because I couldn't find a proof that the two definitions were equivalent.

Paul Lezeau (Dec 30 2023 at 22:52):

I think the blueprint might have a typo there since it seems to claim that the two quantities I defined are equal - or am I just confusing myself?

Terence Tao (Dec 30 2023 at 22:55):

Your version has A instead of A-A. But having dimension A := FiniteDimensional.finrank ℤ (A-A) for instance should be fine.

Terence Tao (Dec 30 2023 at 22:56):

Yeah I guess the blueprint alternate version involving the reals is more of a remark to assist human intuition as to why it is called "dimension" than an essential component of the formalization.

Paul Lezeau (Dec 30 2023 at 22:58):

Terence Tao said:

Your version has A instead of A-A. But having dimension A := FiniteDimensional.finrank ℤ (A-A) for instance should be fine.

Oh I see, I was reading the - as a hyphen and not as a mathematical symbol!

Terence Tao (Dec 30 2023 at 23:00):

I was able to formalize the proof after the definition of dimension using just the definition of dimension', together with the already proven dimension'_le_of_coset_cover as well as the still unproven dimension_le_rank (technically I also use dimension_eq_dimension', but we could just delete dimension and work only with dimension' and it would be fine, as long as we prove dimension'_le_rank which should be straightforward.

Paul Lezeau (Dec 30 2023 at 23:00):

Paul Lezeau said:

Terence Tao said:

Your version has A instead of A-A. But having dimension A := FiniteDimensional.finrank ℤ (A-A) for instance should be fine.

Oh I see, I was reading the - as a hyphen and not as a mathematical symbol!

Yet another situation where the formalization is useful I guess :grinning_face_with_smiling_eyes:

Paul Lezeau (Dec 30 2023 at 23:02):

Terence Tao said:

I was able to formalize the proof after the definition of dimension using just the definition of dimension', together with the already proven dimension'_le_of_coset_cover as well as the still unproven dimension_le_rank (technically I also use dimension_eq_dimension', but we could just delete dimension and work only with dimension' and it would be fine, as long as we prove dimension'_le_rank which should be straightforward.

Okay nice! I'm happy to write a proof of dimension_le_rank tomorrow!

Terence Tao (Dec 30 2023 at 23:03):

It's still true I think that dimension' A = FiniteDimensional.finrank ℤ (A-A) (assuming that the ambient module is finite, and possibly also freeness is needed), and it would have shortened some of the proofs I already formalized, but it's no longer necessary to prove it.

llllvvuu (Jan 02 2024 at 19:00):

I started WIP on torsion-free doubling: https://github.com/teorth/pfr/pull/162

llllvvuu (Jan 03 2024 at 21:38):

torsion-free doubling (B.4) is done: https://github.com/teorth/pfr/pull/162

llllvvuu (Jan 05 2024 at 07:21):

I started WIP on single_fibres (B.8): https://github.com/teorth/pfr/pull/167

Paul Lezeau (Jan 05 2024 at 08:37):

Could I claim 6 (Apply entropic PFR) ?

Mauricio Collares (Jan 07 2024 at 14:21):

Can I claim the remaining item, B.7? If it turns out to be too tricky I'll put it back in the pile in a week.

Jonas Bayer (Jan 08 2024 at 11:18):

Unfortunately, I've not been able to make much progress with 3 partly because I was sick during the last weeks and partly because the proof I wanted to do (see above) got quite complicated on the instance side. So I'd like to put the task back for now, if someone else wants to work on it.

Yaël Dillies (Jan 08 2024 at 11:20):

Do you want to contribute any partial progress?

Jonas Bayer (Jan 08 2024 at 11:54):

My local file is currently in a somewhat chaotic state since moving the lemma to a different file was not as trivial as I thought. There are now both missing and potentially unnecessary instance assumptions and I don't have a good overview anymore. I'm not sure what I could share from that, it would probably be most efficient to start afresh...

Terence Tao (Jan 08 2024 at 15:37):

Jonas Bayer said:

Unfortunately, I've not been able to make much progress with 3 partly because I was sick during the last weeks and partly because the proof I wanted to do (see above) got quite complicated on the instance side. So I'd like to put the task back for now, if someone else wants to work on it.

No problem. If you have any words of wisdom about what to avoid for the next person to try this task, perhaps that would be helpful...

llllvvuu (Jan 08 2024 at 20:17):

Minor question @Jonas Bayer , does ent_of_indep_diff_lower (3.5) exist (I can't find it)? Or were you using max_entropy_sub_mutualInfo_le_entropy_add (3.3) directly

llllvvuu (Jan 09 2024 at 10:17):

single_fibres (B.8) is done: https://github.com/teorth/pfr/pull/167

Paul Lezeau (Jan 09 2024 at 16:41):

app_ent_PFR (B.6) is done: https://github.com/teorth/pfr/pull/174

Paul Lezeau (Jan 09 2024 at 16:44):

To be able to apply certain lemmas, I had to make some small modifications to the assumptions (e.g. replace MeasurableSpace Ω by MeasureSpace Ω) - is that fine?

Yaël Dillies (Jan 09 2024 at 16:50):

You should not use MeasureSpace Ω but instead feed in μ : Measure Ω to the lemmas you were trying to apply.

Yaël Dillies (Jan 09 2024 at 16:51):

You should not use MeasureSpace Ω but instead feed in μ : Measure Ω to the lemmas you were trying to apply.

Yaël Dillies (Jan 09 2024 at 16:51):

Mathematically, it's the same, but formally it's better.

Paul Lezeau (Jan 09 2024 at 16:53):

Yeah that's what I thought!

Terence Tao (Jan 09 2024 at 16:55):

In principle volume_tac gives the best of both worlds, in that you can feed in an explicit measure if you want, or just rely on the bundled MeasureSpace measure if you wanted to.

Paul Lezeau (Jan 09 2024 at 16:55):

In my case however I had to construct a p : refPackage Ω Ω' G and for those one needs MeasureSpace Ω right? A few of the lemmas I used also assumed MeasureSpace Ω (Edit: the only such lemma I could find in the proof is entropic_PFR_conjecture_improv', so it's possible the others aren't used in my proof anymore/were refactored to use MeasurableSpace)

Yaël Dillies (Jan 09 2024 at 16:58):

pfr#refPackage

Yaël Dillies (Jan 09 2024 at 16:59):

Hmm yeah that's a problem. We should fix refPackage.

Terence Tao (Jan 09 2024 at 17:00):

Well if it works for now, fixing it is lower priority than completing the remaining tasks.

Yaël Dillies (Jan 09 2024 at 17:01):

Sure, but it's just a matter of replacing [MeasureSpace Ω₀₂] by [MeasurableSpace Ω₀₂] (μ : Measure Ω₀₂). Not a huge change.

Paul Lezeau (Jan 09 2024 at 17:20):

By the way, in the proof of improved entropy PFR, shouldn't the statement τ[X1;X2]τ[X10,X20]\tau [X_1; X_2] \le \tau[X_1^0, X_2^0] actually be τ[X1;X2]τ[X20,X10]\tau [X_1; X_2] \le \tau[X_2^0, X_1^0] ? (this is what happens in the Lean proof)

Sébastien Gouëzel (Jan 09 2024 at 17:27):

refPackage should definitely keep a MeasureSpaceinstance, because that's the way we want to do probability: with an implicit measure. If you want to construct a refPackage, then you should indeed construct a MeasureSpace.

Sébastien Gouëzel (Jan 09 2024 at 17:27):

(deleted)

Sébastien Gouëzel (Jan 09 2024 at 17:31):

(deleted)

Terence Tao (Jan 09 2024 at 18:23):

By the way, is there some basic constructor such as

import Mathlib
open MeasureTheory

def MeasureSpace.mk {Ω:Type} [MeasurableSpace Ω] (μ: Measure Ω) : MeasureSpace Ω := { volume := μ }

to build a MeasureSpace from a MeasurableSpace and a Measure? With such a constructor (as well as volume_tac for the opposite direction) it's a triviality to pass back and forth between MeasureSpaces and MeasurableSpaces anyway.

Terence Tao (Jan 09 2024 at 18:24):

Paul Lezeau said:

By the way, in the proof of improved entropy PFR, shouldn't the statement τ[X1;X2]τ[X10,X20]\tau [X_1; X_2] \le \tau[X_1^0, X_2^0] actually be τ[X1;X2]τ[X20,X10]\tau [X_1; X_2] \le \tau[X_2^0, X_1^0] ? (this is what happens in the Lean proof)

Yeah, I think you're right, I'll update the blueprint accordingly. (Lots of little typos that the formalization is picking up!)

Paul Lezeau (Jan 09 2024 at 18:27):

Terence Tao said:

Paul Lezeau said:

By the way, in the proof of improved entropy PFR, shouldn't the statement $\tau [X_1; X_2] \le \tau[X_1^0, X_2^0]$ actually be $\tau [X_1; X_2] \le \tau[X_2^0, X_1^0]$ ? (this is what happens in the Lean proof)

Yeah, I think you're right, I'll update the blueprint accordingly. (Lots of little typos that the formalization is picking up!)

I think there's the same typo for the (unimproved) entropy PFR by the way

Rémy Degenne (Jan 09 2024 at 18:55):

Terence Tao said:

By the way, is there some basic constructor such as

import Mathlib
open MeasureTheory

def MeasureSpace.mk {Ω:Type} [MeasurableSpace Ω] (μ: Measure Ω) : MeasureSpace Ω := { volume := μ }

to build a MeasureSpace from a MeasurableSpace and a Measure? With such a constructor (as well as volume_tac for the opposite direction) it's a triviality to pass back and forth between MeasureSpaces and MeasurableSpaces anyway.

Yes, there is such a constructor, and it is called exactly that: MeasureSpace.mk μ will make a measure space with volume μ.

Mauricio Collares (Jan 09 2024 at 19:25):

@Paul Lezeau I noticed you changed hent: H[X;μ] + H[Y;μ'] > 44 * d[X;μ # Y;μ'] to hent: H[X] + H[Y] > 44 * d[X # Y] in the statement of app_ent_PFR. Was that intentional? If so, should I propagate the change to PFR_projection?

Edit: [IsProbabilityMeasure μ] [IsProbabilityMeasure μ'] also changed to [IsProbabilityMeasure (ℙ : Measure Ω)] [IsProbabilityMeasure (ℙ : Measure Ω')], and I guess the two changes are related.

Paul Lezeau (Jan 09 2024 at 19:55):

@Mauricio Collares ah so that was because I needed to assume MeasureSpace Ω instead of MeasurableSpace Ω to make some of the lemmas I was using applicable, and also work with the canonical measure coming from MeasureSpace Ω. However since we have a constructor to get a MeasureSpace so I might be able to return to the original formulation if that's better

Mauricio Collares (Jan 09 2024 at 19:58):

I think the only application of PFR_projection uses the canonical measure, so propagating the changes wouldn't be a big problem; I just wanted it to be a conscious decision. Let's wait for Tao's feedback.

Mauricio Collares (Jan 09 2024 at 20:04):

I also have a mathematical question regarding PFR_projection, which I'm posting in the hope that I'll slap my forehead as soon as I hit submit. In Lemma 11.4 of the blueprint, I don't understand the second-to-last displayed equation. Here is the corresponding place in my Lean code; all other remaining sorries should be trivial.

Being more concrete, the equation in question is

H(ψ(X))+H(ψ(Y))<H(ψ(X))+H(ψ(Y))221H(H(X)+H(Y)).\mathbb{H}(\psi''(X))+\mathbb{H}(\psi''(Y))< \frac{\mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y))}{2}\leq 2^{1-\lvert H'\rvert}(\mathbb{H}(X)+\mathbb{H}(Y)).

Although HH' is defined, the H|H'| in the exponent seems like a typo. Assuming it is meant to be HH'' (which would allow us to deduce H(ψ(X))+H(ψ(Y))44d[ψ(X);ψ(Y)]\mathbb{H}(\psi''(X))+\mathbb{H}(\psi''(Y))\leq 44d[\psi''(X);\psi''(Y)] by maximality), then I don't see why the last inequality follows. By hypothesis on HH, it is true that

H(ψ(X))+H(ψ(Y))22H(H(X)+H(Y)), \frac{\mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y))}{2}\leq 2^{-\lvert H\rvert}(\mathbb{H}(X)+\mathbb{H}(Y)),

but we only have H<H|H| < |H''| and getting to

H(ψ(X))+H(ψ(Y))221H(H(X)+H(Y))\frac{\mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y))}{2}\leq 2^{1-\lvert H''\rvert}(\mathbb{H}(X)+\mathbb{H}(Y))

from that would require the other direction. If the HH' was meant to be a HH instead, then I don't see how to use the maximality of HH. I guess my confusion is that if HH'' is "much larger" than HH, then

H(ψ(X))+H(ψ(Y))<H(ψ(X))+H(ψ(Y))2\mathbb{H}(\psi''(X))+\mathbb{H}(\psi''(Y))< \frac{\mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y))}{2}

seems very "wasteful" at first glance, and we need to "get back to HH''" somehow. I tried looking at the proof of Lemma 9.1 in https://arxiv.org/pdf/2306.13403.pdf but it uses a slightly different approach, which would mean redoing the Lean proof from scratch.

Thomas Bloom (Jan 09 2024 at 22:16):

Hmm yes, you're right, this is my fault (I adapted the proof from the paper to be more amenable to formalisation, but took an invalid shortcut.)

There's a relatively short change I think that will make it work, so you shouldn't have to redo from scratch. I'll post it in a few hours when I'm back at my laptop. Sorry about that!

Mauricio Collares (Jan 09 2024 at 22:18):

No worries (and no hurry)! Redoing it from scratch wouldn't be bad, but a short change is even better :)

Terence Tao (Jan 09 2024 at 22:27):

Mauricio Collares said:

I think the only application of PFR_projection uses the canonical measure, so propagating the changes wouldn't be a big problem; I just wanted it to be a conscious decision. Let's wait for Tao's feedback.

I have no strong preference either way, since it doesn't really affect the arguments either way and is mostly an aesthetic issue. I guess making the tools accept MeasurableSpace+Measure instead of MeasureSpace is very slightly more convenient to the end user (it saves them typing MeasureSpace.mk) but it is a very minor thing I think.

Terence Tao (Jan 09 2024 at 23:52):

Rémy Degenne said:

Yes, there is such a constructor, and it is called exactly that: MeasureSpace.mk μ will make a measure space with volume μ.

Where is this documented, by the way? I can see it exists via #check, but docs#MeasureTheory.MeasureSpace.mk just redirects to the definition of MeasureSpace, and I can't even locate this method in the source code. Is there some very general mk method that works for general classes?

Riccardo Brasca (Jan 10 2024 at 00:00):

A class is under the wood just a structure, that is an inductive type with only one constructor, called mk by default (this can be changed using the syntax ::). You have a look at #tpil, in this section.

Riccardo Brasca (Jan 10 2024 at 00:02):

If you write whatsnew in before the definition of the class you should see all the stuff automatically generated by Lean.

llllvvuu (Jan 10 2024 at 03:12):

I poked at B.3 (ent_of_proj_le) a bit: https://github.com/teorth/pfr/pull/175/files

Currently, H[X - U_H] = H[pi(X), U_H] seeems to be the tedious part because X - U_H and pi(X), U_H marginalize over X, U_H slightly differently so we can't just plug in entropy_eq_of_injective or similar. I think we have to actually manipulate the sum to line up the probabilities pointwise which doesn't seem too appetizing right now with the FIniteRange generalization (hopefully I'm overthinking this)

llllvvuu (Jan 10 2024 at 03:28):

Basically the proof I have in mind is:

P((π(X),UH)=(H+x,h))=hP((X,UH)=(x+h,h))P((\pi(X), U_H) = (H + x, h)) = \sum_{h'} P((X, U_H) = (x + h', h))
P(XUH=x)=hP((X,UH)=(x+h,h+h))P(X - U_H = x) = \sum_{h'} P((X, U_H) = (x + h', h + h'))

Here one sum ranges over (G/H)×H(G / H) \times H and another ranges over GG and the terms have to be lined up, which I may not be familiar enough with the cosets API to do

Terence Tao (Jan 10 2024 at 03:28):

llllvvuu said:

I poked at B.3 (ent_of_proj_le) a bit: https://github.com/teorth/pfr/pull/175/files

Currently, H[X - U_H] = H[pi(X), U_H] seeems to be the tedious part because X - U_H and pi(X), U_H marginalize over X, U_H slightly differently so we can't just plug in entropy_eq_of_injective or similar. I think we have to actually manipulate the sum to line up the probabilities pointwise which doesn't seem too appetizing right now with the FIniteRange generalization (hopefully I'm overthinking this)

It should be enough to prove that H[X - UH | π X ] = H[UH]. This in turn should follow from IsUniform ( X-UH | (π X)⁻¹' {y} ) π⁻¹' {y} (the notation may not be exactly this)

Terence Tao (Jan 10 2024 at 03:32):

The uniformity might be easiest to prove directly from our definition of IsUniform (that every point in π⁻¹' {y} gets the same probability, and the complement of this set gets zero probability)

Terence Tao (Jan 10 2024 at 03:33):

But yeah it's more of a slog than I first realized... these "obvious" computations are surprisingly lengthy sometimes to formalize

Terence Tao (Jan 10 2024 at 03:52):

Hmm here is an approach that does not explicitly require checking uniformity. Firstly
H[XUH]=H[XUH,π(XUH)]=H[XUH,π(X)]=H[XUHπ(X)]+H[π(X)] H[X - U_H] = H[X -U_H, \pi(X - U_H)] = H[X-U_H, \pi(X)] = H[X-U_H|\pi(X)] + H[\pi(X)]
and by independence
H[UH,π(X)]=H[UH]+H[π(X)] H[U_H, \pi(X)] = H[U_H] + H[\pi(X)]
while by submodularity and independence
H[XUHπ(X)]H[XUHX]=H[UHX]=H[UH]=logH H[X-U_H|\pi(X)] \geq H[X-U_H|X] = H[U_H|X] = H[U_H] = \log |H|
but on the other hand, for any yG/Hy \in G/H, XUHX-U_H is supported in π1({y})\pi^{-1}(\{y\}) when π(X)=y\pi(X) = y hence
H[XUHπ(X)=y]log#π1({y})=logH H[X-U_H|\pi(X)=y] \leq \log \# \pi^{-1}(\{y\}) = \log |H|
and thus
H[XUHπ(X)]logH. H[X-U_H|\pi(X)] \leq \log |H|.
The claim now follows from linarith. Still not a short proof, but less computation than some other alternatives.

Thomas Bloom (Jan 10 2024 at 06:55):

Mauricio Collares said:

I also have a mathematical question regarding PFR_projection

OK, fixed on the blueprint now, but so you don't have to wait for the approval: the only change is that the $\lvert H\rvert$ becomes some unspecified integer $k\geq 0$. The only role is plays is as a bookkepping device, so it doesn't matter if it's unrelated to $H$ otherwise, as long as it's the same integer in both the second and third conditions on maximality.

This should only need a minor adaptation to the proof you've written so far, I'd hope.

llllvvuu (Jan 10 2024 at 07:04):

Thanks @Terence Tao ! The proof state is much better now. There are slightly tedious side conditions left of course but I'll go ahead and claim this (B.3) as it seems tractable from here

Mauricio Collares (Jan 10 2024 at 07:13):

@Thomas Bloom Thanks! I'm still a bit confused, though. For proving the upper bound on logH\log |H''|, we would need to show that logH+logH(222k)(H(X)+H(Y))\log |H| + \log |H'| \leq (2 - 2 ^{2-k}) (\mathbb{H}(X) + \mathbb{H}(Y)), but the upper bound we have on logH\log |H| doesn't seem to leave any "slack" for this; if I understand correctly, the bounds we'd have in this new context are logH(222k)(H(X)+H(Y))\log |H| \leq (2 - 2 ^{2-k}) (\mathbb{H}(X) + \mathbb{H}(Y)) and logH<H(ψ(X))+H(ψ(Y))21k(H(X)+H(Y))\log |H'| < \mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y)) \leq 2^{1-k} (\mathbb{H}(X) + \mathbb{H}(Y)), and summing we only get a bound of (221k)(H(X)+H(Y))(2 - 2 ^{1-k}) (\mathbb{H}(X) + \mathbb{H}(Y)).

Thomas Bloom (Jan 10 2024 at 07:31):

Right, but that's exactly the bound we want (note kk has become k+1k+1) since it matches with H(ψ(X))+H(ψ(Y))2k(H(X)+H(Y))H(\psi''(X))+H(\psi''(Y))\leq 2^{-k}(H(X)+H(Y)).

Mauricio Collares (Jan 10 2024 at 07:34):

Ah, sorry, I understand now! We're taking HH maximal for the property that there exists a kk such that H(ψ(X))+H(ψ(Y))>44d[ψ(X);ψ(Y)]\mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y))> 44d[\psi(X);\psi(Y)], logH(222k)(H(X)+H(Y))\log \lvert H\rvert \leq \left(2-2^{2-k}\right)(\mathbb{H}(X)+\mathbb{H}(Y)) and H(ψ(X))+H(ψ(Y))21k(H(X)+H(Y))\mathbb{H}(\psi(X))+\mathbb{H}(\psi(Y))\leq 2^{1-k}(\mathbb{H}(X)+\mathbb{H}(Y)). I had misunderstood the fix at first, thanks!

Mauricio Collares (Jan 10 2024 at 08:09):

Adapting the proof was indeed very easy, thanks for the very short fix! Still have a bunch of unrelated cleanup to do...

Edit: Submitted as https://github.com/teorth/pfr/pull/176

llllvvuu (Jan 10 2024 at 11:58):

ent_of_proj_le (B.3) is done: https://github.com/teorth/pfr/pull/175

Terence Tao (Jan 10 2024 at 21:17):

image.png
weak_pfr_int is now sorry-free! Thanks to everyone who pushed it over the finish line, this was definitely a team effort.

Sébastien Gouëzel (Jan 11 2024 at 10:06):

Thomas Bloom said:

OK, fixed on the blueprint now.

Looks like the blueprint still holds the old version, am I missing something?

Also, I've PRed a trivial improvement of constants (from 44 to 40) in https://github.com/teorth/pfr/pull/178.

Mauricio Collares (Jan 11 2024 at 15:59):

I think @Thomas Bloom pushed it to https://github.com/TFBloom/pfr/tree/patch-2 but didn't create a PR. That being said, there's a very minor simplification that can be done on the fixed version: 21k2^{1-k} can be replaced by a non-negative real number α\alpha, as in https://github.com/teorth/pfr/pull/179

Sébastien Gouëzel (Jan 11 2024 at 16:36):

Oops, I was working on yet another improvement of the constant (from 40 to 34), by being more precise in the proof that your PR simplifies (see https://github.com/teorth/pfr/pull/180), so there will be a conflict here. Do you think your cleanup would also apply to the version in my PR? (Probably yes!)

Mauricio Collares (Jan 11 2024 at 16:49):

@Sébastien Gouëzel Nice! I see you also did a lot of cleanup in the calc blocks. I wouldn't mind if you reverted my changes. I like the new argument, and I can always submit a follow-up PR later if I find an analogous simplification.

Mauricio Collares (Jan 11 2024 at 17:04):

I just checked that replacing α^k by xin your proof still works fine, but I still have to think if it counts as a simplification in this new set-up.

Mauricio Collares (Jan 11 2024 at 17:42):

I think replacing α^k by x would decrease the readability of your proof. Feel free to fully revert my commit in your version.

Sébastien Gouëzel (Jan 11 2024 at 18:18):

I've fixed the conflicts in my PR, and borrowed in particular your trick of replacing αk\alpha^k with an arbitrary constant, both in the Lean file and the blueprint.

Sébastien Gouëzel (Jan 11 2024 at 18:58):

I've updated the blueprint using a mildly standard latex command (\qedhere), which apparently plastex doesn't know, and is ugly just above https://teorth.github.io/pfr/blueprint/sect0011.html#pfr-projection. @Patrick Massot, should I just remove it (after all, it only changes the appearance of the generated pdf file, which no-one will ever look at anyway), or is there a better way?

Patrick Massot (Jan 11 2024 at 18:59):

What you see is not plasTeX being confused, it is mathjax being confused.

Patrick Massot (Jan 11 2024 at 19:00):

See https://math.meta.stackexchange.com/questions/3582/qed-for-mathjax-here-on-stackexchange

Sébastien Gouëzel (Jan 11 2024 at 19:40):

To me it's both plasTeX and mathjax being confused: \qedhere is a command moving the end of proof symbol around, which doesn't make sense in an html context, so plasTeX should strip it away if it knew what this means. And mathjax should also ignore it, in an ideal world. Anyway, it's really minor!

Eric Rodriguez (Jan 11 2024 at 21:03):

I'm going on holiday tomorrow and I still haven't had time to do my claim. I'm very happy to still do it later but if anyone wants some work to do, please feel free to take it - I've hogged it for nearly a month now and I feel awful!

llllvvuu (Jan 12 2024 at 04:42):

I can take a look.

llllvvuu (Jan 13 2024 at 08:18):

OK, I got it sorry-free: https://github.com/teorth/pfr/pull/182

I also fixed a typo (I think) in the blueprint, I guess L=C1C3K2(C2+C4)L = C_1C_3 K^{2(C_2+C_4)} was meant to cover AA, but we only need to cover AA' (hence L=C3K2C4L = C_3 K^{2C_4})

llllvvuu (Jan 13 2024 at 09:08):

BTW, the Zulip PDF link in the proof of 10.3 (bsg) gives me an access denied error; is it worth re-uploading somewhere else?

Terence Tao (Jan 13 2024 at 19:01):

llllvvuu said:

BTW, the Zulip PDF link in the proof of 10.3 (bsg) gives me an access denied error; is it worth re-uploading somewhere else?

ok, I've hosted it on a new link https://terrytao.files.wordpress.com/2024/01/simplebsg.pdf


Last updated: May 02 2025 at 03:31 UTC