Theorem: convexOn_zpow
File: Mathlib/Analysis/Convex/Mul.lean

Proof steps:
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ConvexOn 𝕜 (Ioi 0) fun x => x ^ ↑n
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ConvexOn 𝕜 (Ioi 0) fun x => x ^ n
tactic: simp_rw [zpow_natCast]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ConvexOn 𝕜 (Ioi 0) fun x => x ^ n
state_after: no goals
tactic: exact (convexOn_pow n).subset Ioi_subset_Ici_self (convex_Ioi _)
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ConvexOn 𝕜 (Ioi 0) fun x => x ^ -[n+1]
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ConvexOn 𝕜 (Ioi 0) fun x => x⁻¹ ^ (n + 1)
tactic: simp_rw [zpow_negSucc, ← inv_pow]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ConvexOn 𝕜 (Ioi 0) fun x => x⁻¹ ^ (n + 1)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ∀ ⦃x : 𝕜⦄,
    x ∈ Ioi 0 → ∀ ⦃y : 𝕜⦄, y ∈ Ioi 0 → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → (a • x + b • y)⁻¹ ≤ a • x⁻¹ + b • y⁻¹
tactic: refine (convexOn_iff_forall_pos.2 ⟨convex_Ioi _, ?_⟩).pow (fun x (hx : 0 < x) ↦ by positivity) _
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
⊢ ∀ ⦃x : 𝕜⦄,
    x ∈ Ioi 0 → ∀ ⦃y : 𝕜⦄, y ∈ Ioi 0 → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → (a • x + b • y)⁻¹ ≤ a • x⁻¹ + b • y⁻¹
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ (a • x + b • y)⁻¹ ≤ a • x⁻¹ + b • y⁻¹
tactic: rintro x (hx : 0 < x) y (hy : 0 < y) a b ha hb hab
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ (a • x + b • y)⁻¹ ≤ a • x⁻¹ + b • y⁻¹
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 1 / (a * x + b * y) ≤ (a * y + b * x) / (x * y)
tactic: field_simp
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 1 / (a * x + b * y) ≤ (a * y + b * x) / (x * y)
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 0 ≤ (a * y + b * x) * (a * x + b * y) - 1 * (x * y)

case b0
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 0 < a * x + b * y

case d0
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 0 < x * y
tactic: rw [div_le_div_iff, ← sub_nonneg]
state_before: case b0
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 0 < a * x + b * y

case d0
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝ : LinearOrderedField 𝕜
n : ℕ
x : 𝕜
hx : 0 < x
y : 𝕜
hy : 0 < y
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ 0 < x * y
state_after: no goals
tactic: all_goals positivity