Skip to main content
teorth/PFR
Source indexedtheorem · leanprover/lean4:v4.33.0-rc1

multiDist_of_hom'

PFR.MoreRuzsaDist · PFR/MoreRuzsaDist.lean:2117 to 2143

Mathematical statement

Exact Lean statement

theorem multiDist_of_hom' {G G' : Type*} [MeasurableSpace G] [MeasurableSingletonClass G]
    [AddCommGroup G] [Finite G] [MeasurableSpace G'] [MeasurableSingletonClass G']
    [AddCommGroup G'] [Finite G'] {ι : G →+ G'} (hι : Function.Injective ⇑ι) {m : ℕ}
    {Ω : Fin m → Type*} (hΩ : ∀ i, MeasureSpace (Ω i))
    [∀ i, IsProbabilityMeasure (ℙ : Measure (Ω i))] {X : ∀ i, Ω i → G} (hX : ∀ i, Measurable (X i))
    (a : Fin m → G') : D[fun i ω ↦ ι (X i ω) + a i; hΩ] = D[X; hΩ]

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem multiDist_of_hom' {G G' : Type*} [MeasurableSpace G] [MeasurableSingletonClass G]    [AddCommGroup G] [Finite G] [MeasurableSpace G'] [MeasurableSingletonClass G']    [AddCommGroup G'] [Finite G'] {ι : G →+ G'} (hι : Function.Injective ⇑ι) {m : }    {Ω : Fin m  Type*} (hΩ :  i, MeasureSpace (Ω i))    [ i, IsProbabilityMeasure (ℙ : Measure (Ω i))] {X :  i, Ω i  G} (hX :  i, Measurable (X i))    (a : Fin m  G') : D[fun i ω  ι (X i ω) + a i; hΩ] = D[X; hΩ] := by  unfold multiDist  congr 1  · unfold entropy    set sum_G : (Fin m  G)  G := fun x  ∑ i, x i    set sum_G' : (Fin m  G')  G' := fun x  ∑ i, x i    let ι' : G  G' := fun x  ι x + ∑ i, a i    have hι' : Function.Injective ι' := by simpa [ι', Injective]    convert measureEntropy_map_of_injective _ ι' _ hι' <;> try fun_prop    rw [Measure.map_map] <;> try fun_prop    have : ι' ∘ sum_G = sum_G' ∘ (fun x i  ι (x i) + a i) := by      ext x; simp [ι', sum_G, sum_G', Finset.sum_add_distrib]    rw [this, Measure.map_map] <;> try fun_prop    congr    convert (Measure.map_of_pi (f := fun i x  ι x + a i) _ _).symm with i    · rw [Measure.map_map] <;> try fun_prop      congr    · intro i; exact isProbabilityMeasure_map (by fun_prop)    intro i; fun_prop  congr 2; ext i  apply entropy_comp_of_injective _ (hX i) (fun x  ι x + a i) _  intro x y hxy; simp only [_root_.add_left_inj] at hxy; exact hι hxy