Skip to main content
YaelDillies/APAP
Source indexedlemma · leanprover/lean4:v4.32.0

ThreeAPFree.wInner_one_mu_ddconv_mu_mu_two_smul_mu

APAP.Prereqs.Convolution.ThreeAP · APAP/Prereqs/Convolution/ThreeAP.lean:20 to 41

Mathematical statement

Exact Lean statement

lemma ThreeAPFree.wInner_one_mu_ddconv_mu_mu_two_smul_mu (hG : Odd (card G))
    (hs : ThreeAPFree (s : Set G)) :
    ⟪μ_[ℝ] s ∗ᵈ μ s, μ (s.image (2 • ·))⟫_[ℝ] = (#s ^ 2 : ℝ)⁻¹

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma ThreeAPFree.wInner_one_mu_ddconv_mu_mu_two_smul_mu (hG : Odd (card G))    (hs : ThreeAPFree (s : Set G)) :    ⟪μ_[] s ∗ᵈ μ s, μ (s.image (2·))⟫_[] = (#s ^ 2 : )⁻¹ := by  obtain rfl | hs' := s.eq_empty_or_nonempty  · simp  simp only [wInner_one_eq_sum, inner_apply', sum_ddconv_mul,  sum_product', RCLike.conj_to_real]  rw [ diag_union_offDiag univ, sum_union (disjoint_diag_offDiag _), sum_diag,     sum_add_sum_compl s, @sum_eq_card_nsmul _ _ _ _ _ (#s ^ 3 : )⁻¹, nsmul_eq_mul,    Finset.sum_eq_zero, Finset.sum_eq_zero, add_zero, add_zero, pow_succ', mul_inv,    mul_inv_cancel_left₀]  · exact Nat.cast_ne_zero.2 hs'.card_pos.ne'  · refine fun i hi  not_ne_iff.1 fun h  (mem_offDiag.1 hi).2.2 ?_    simp_rw [mul_ne_zero_iff,  mem_support, support_mu, mem_coe, mem_image, two_smul] at h    obtain b, hb, hab := h.2    obtain rfl := hs h.1.1 hb h.1.2 hab.symm    simpa using hab  · simpa using fun _  Or.inl  · rintro a ha    simp only [mu_apply, ha, if_true, mul_one, mem_image, mul_ite, mul_zero]    rw [if_pos _, ha, two_smul _ _, card_image_of_injective, pow_three', mul_inv, mul_inv]    rw [ Nat.card_eq_fintype_card] at hG    exact hG.coprime_two_right.nsmul_right_bijective.injective