Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 93e97d1

Browse files
committed
feat(analysis/convex/function): Variants of convex_on.le_right_of_left_le (#14821)
This PR adds four variants of `convex_on.le_right_of_left_le` that are useful when dealing with convex functions on the real numbers.
1 parent 71e11de commit 93e97d1

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

src/analysis/convex/function.lean

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ begin
580580
exact hf.le_left_of_right_le' hy hx hb ha hab hfx,
581581
end
582582

583-
lemma concave_on.le_right_of_left_le' (hf : concave_on 𝕜 s f) {x y : E} {a b : 𝕜}
583+
lemma concave_on.right_le_of_le_left' (hf : concave_on 𝕜 s f) {x y : E} {a b : 𝕜}
584584
(hx : x ∈ s) (hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1)
585585
(hfx : f (a • x + b • y) ≤ f x) :
586586
f y ≤ f (a • x + b • y) :=
@@ -607,7 +607,7 @@ begin
607607
exact hf.le_right_of_left_le' hx hy ha.le hb hab hxz,
608608
end
609609

610-
lemma concave_on.le_right_of_left_le (hf : concave_on 𝕜 s f) {x y z : E} (hx : x ∈ s)
610+
lemma concave_on.right_le_of_le_left (hf : concave_on 𝕜 s f) {x y z : E} (hx : x ∈ s)
611611
(hy : y ∈ s) (hz : z ∈ open_segment 𝕜 x y) (hxz : f z ≤ f x) :
612612
f y ≤ f z :=
613613
hf.dual.le_right_of_left_le hx hy hz hxz
@@ -898,3 +898,28 @@ lemma strict_concave_on_iff_div {f : E → β} :
898898
end has_smul
899899
end ordered_add_comm_monoid
900900
end linear_ordered_field
901+
902+
section
903+
904+
variables [linear_ordered_field 𝕜] [linear_ordered_cancel_add_comm_monoid β] [module 𝕜 β]
905+
[ordered_smul 𝕜 β] {x y z : 𝕜} {s : set 𝕜} {f : 𝕜 → β}
906+
907+
lemma convex_on.le_right_of_left_le'' (hf : convex_on 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
908+
(hxy : x < y) (hyz : y ≤ z) (h : f x ≤ f y) : f y ≤ f z :=
909+
hyz.eq_or_lt.elim (λ hyz, (congr_arg f hyz).le)
910+
(λ hyz, hf.le_right_of_left_le hx hz (Ioo_subset_open_segment ⟨hxy, hyz⟩) h)
911+
912+
lemma convex_on.le_left_of_right_le'' (hf : convex_on 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
913+
(hxy : x ≤ y) (hyz : y < z) (h : f z ≤ f y) : f y ≤ f x :=
914+
hxy.eq_or_lt.elim (λ hxy, (congr_arg f hxy).ge)
915+
(λ hxy, hf.le_left_of_right_le hx hz (Ioo_subset_open_segment ⟨hxy, hyz⟩) h)
916+
917+
lemma concave_on.right_le_of_le_left'' (hf : concave_on 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
918+
(hxy : x < y) (hyz : y ≤ z) (h : f y ≤ f x) : f z ≤ f y :=
919+
hf.dual.le_right_of_left_le'' hx hz hxy hyz h
920+
921+
lemma concave_on.left_le_of_le_right'' (hf : concave_on 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
922+
(hxy : x ≤ y) (hyz : y < z) (h : f y ≤ f z) : f x ≤ f y :=
923+
hf.dual.le_left_of_right_le'' hx hz hxy hyz h
924+
925+
end

0 commit comments

Comments
 (0)