fpvandoorn/carleson
Source indexedlemma · leanprover/lean4:v4.32.0
ComputationsChoiceExponent.eq_exponents₀
Carleson.ToMathlib.RealInterpolation.InterpolatedExponents · Carleson/ToMathlib/RealInterpolation/InterpolatedExponents.lean:957 to 982
Mathematical statement
Exact Lean statement
lemma eq_exponents₀ (ht : t ∈ Ioo 0 1) (hq₀ : 0 < q₀) (hq₁ : 0 < q₁) (hq₀q₁ : q₀ ≠ q₁)
(hq : q⁻¹ = (1 - t) * q₀⁻¹ + t * q₁⁻¹) (hq₀' : q₀ ≠ ⊤) :
(q₀.toReal + q₁⁻¹.toReal / (q₁⁻¹.toReal - q₀⁻¹.toReal) *
(q.toReal - q₀.toReal)) = (1 - t).toReal * q.toRealComplete declaration
Lean source
Full Lean sourceLean 4
lemma eq_exponents₀ (ht : t ∈ Ioo 0 1) (hq₀ : 0 < q₀) (hq₁ : 0 < q₁) (hq₀q₁ : q₀ ≠ q₁) (hq : q⁻¹ = (1 - t) * q₀⁻¹ + t * q₁⁻¹) (hq₀' : q₀ ≠ ⊤) : (q₀.toReal + q₁⁻¹.toReal / (q₁⁻¹.toReal - q₀⁻¹.toReal) * (q.toReal - q₀.toReal)) = (1 - t).toReal * q.toReal := by rw [mul_comm_div, ← mul_div_assoc, add_div'] · have : q₀.toReal * (q₁⁻¹.toReal - q₀⁻¹.toReal) + q₁⁻¹.toReal * (q.toReal - q₀.toReal) = q.toReal * ((1 - t).toReal * (q₁⁻¹.toReal - q₀⁻¹.toReal)) := by calc _ = q₀.toReal * q₁⁻¹.toReal - q₀.toReal * q₀⁻¹.toReal + q₁⁻¹.toReal * q.toReal - q₁⁻¹.toReal * q₀.toReal := by ring _ = q₁⁻¹.toReal * q.toReal - q⁻¹.toReal * q.toReal := by rw [toReal_inv, toReal_inv, toReal_inv, mul_inv_cancel₀, inv_mul_cancel₀] · ring · exact (interp_exp_toReal_pos ht hq₀ hq₁ hq₀q₁ hq).ne' · exact (toReal_pos hq₀.ne' hq₀').ne' _ = q.toReal * (q₁⁻¹.toReal - q⁻¹.toReal) := by ring _ = _ := by rw [preservation_interpolation ht hq₀ hq₁ hq] congr rw [one_sub_ioo_toReal ht] ring rw [this, mul_div_assoc, mul_div_cancel_right₀] · ring exact ne_sub_toReal_exp hq₀ hq₁ hq₀q₁ · exact ne_sub_toReal_exp hq₀ hq₁ hq₀q₁