analysis.convex.function
⟷
Mathlib.Analysis.Convex.Function
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -415,9 +415,9 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
and_congr_right'
⟨fun h x hx y hy a b ha hb hab => h hx hy ha.le hb.le hab, fun h x hx y hy a b ha hb hab => _⟩
obtain rfl | ha' := ha.eq_or_lt
- · rw [zero_add] at hab ; subst b; simp_rw [zero_smul, zero_add, one_smul]
+ · rw [zero_add] at hab; subst b; simp_rw [zero_smul, zero_add, one_smul]
obtain rfl | hb' := hb.eq_or_lt
- · rw [add_zero] at hab ; subst a; simp_rw [zero_smul, add_zero, one_smul]
+ · rw [add_zero] at hab; subst a; simp_rw [zero_smul, add_zero, one_smul]
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
-/
@@ -539,7 +539,7 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
by
refine' convexOn_iff_pairwise_pos.2 ⟨hs, fun x hx y hy hxy a b ha hb hab => _⟩
wlog h : x < y
- · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
+ · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
@@ -580,7 +580,7 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
by
refine' ⟨hs, fun x hx y hy hxy a b ha hb hab => _⟩
wlog h : x < y
- · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
+ · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
@@ -1079,7 +1079,7 @@ theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
constructor
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy a b ha hb hab => _⟩
- simp [neg_apply, neg_le, add_comm] at h
+ simp [neg_apply, neg_le, add_comm] at h
exact h hx hy ha hb hab
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy a b ha hb hab => _⟩
@@ -1105,7 +1105,7 @@ theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn
constructor
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy hxy a b ha hb hab => _⟩
- simp [neg_apply, neg_lt, add_comm] at h
+ simp [neg_apply, neg_lt, add_comm] at h
exact h hx hy hxy ha hb hab
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy hxy a b ha hb hab => _⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -308,7 +308,7 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha hb hab
_ ≤ a • r + b • r :=
- (add_le_add (smul_le_smul_of_nonneg hx.2 ha) (smul_le_smul_of_nonneg hy.2 hb))
+ (add_le_add (smul_le_smul_of_nonneg_left hx.2 ha) (smul_le_smul_of_nonneg_left hy.2 hb))
_ = r := Convex.combo_self hab r⟩
#align convex_on.convex_le ConvexOn.convex_le
-/
@@ -327,7 +327,8 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
refine' ⟨hf.1 hx hy ha hb hab, _⟩
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
- _ ≤ a • r + b • t := add_le_add (smul_le_smul_of_nonneg hr ha) (smul_le_smul_of_nonneg ht hb)
+ _ ≤ a • r + b • t :=
+ add_le_add (smul_le_smul_of_nonneg_left hr ha) (smul_le_smul_of_nonneg_left ht hb)
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
-/
@@ -502,7 +503,7 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx.1 hy.1 hxy ha hb hab
_ ≤ a • r + b • r :=
- (add_le_add (smul_lt_smul_of_pos hx.2 ha).le (smul_lt_smul_of_pos hy.2 hb).le)
+ (add_le_add (smul_lt_smul_of_pos_left hx.2 ha).le (smul_lt_smul_of_pos_left hy.2 hb).le)
_ = r := Convex.combo_self hab r⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
-/
@@ -705,8 +706,8 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha.le hb.le hab
_ < a • r + b • r :=
- (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hx.2 ha)
- (smul_le_smul_of_nonneg hy.2.le hb.le))
+ (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos_left hx.2 ha)
+ (smul_le_smul_of_nonneg_left hy.2.le hb.le))
_ = r := Convex.combo_self hab _⟩
#align convex_on.convex_lt ConvexOn.convex_lt
-/
@@ -727,7 +728,8 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
calc
f (a • p.1 + b • q.1) ≤ a • f p.1 + b • f q.1 := hf.2 hp.1 hq.1 ha.le hb.le hab
_ < a • p.2 + b • q.2 :=
- add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
+ add_lt_add_of_lt_of_le (smul_lt_smul_of_pos_left hp.2 ha)
+ (smul_le_smul_of_nonneg_left hq.2 hb.le)
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
-/
@@ -772,12 +774,14 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.right hx hy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_left ha) (smul_le_smul_of_nonneg le_sup_left hb)
+ add_le_add (smul_le_smul_of_nonneg_left le_sup_left ha)
+ (smul_le_smul_of_nonneg_left le_sup_left hb)
·
calc
g (a • x + b • y) ≤ a • g x + b • g y := hg.right hx hy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_right ha) (smul_le_smul_of_nonneg le_sup_right hb)
+ add_le_add (smul_le_smul_of_nonneg_left le_sup_right ha)
+ (smul_le_smul_of_nonneg_left le_sup_right hb)
#align convex_on.sup ConvexOn.sup
-/
@@ -797,13 +801,13 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
(calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx hy hxy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_left ha.le)
- (smul_le_smul_of_nonneg le_sup_left hb.le))
+ add_le_add (smul_le_smul_of_nonneg_left le_sup_left ha.le)
+ (smul_le_smul_of_nonneg_left le_sup_left hb.le))
(calc
g (a • x + b • y) < a • g x + b • g y := hg.2 hx hy hxy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_right ha.le)
- (smul_le_smul_of_nonneg le_sup_right hb.le))⟩
+ add_le_add (smul_le_smul_of_nonneg_left le_sup_right ha.le)
+ (smul_le_smul_of_nonneg_left le_sup_right hb.le))⟩
#align strict_convex_on.sup StrictConvexOn.sup
-/
@@ -822,8 +826,8 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
_ ≤ a • max (f x) (f y) + b • max (f x) (f y) :=
- (add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha)
- (smul_le_smul_of_nonneg (le_max_right _ _) hb))
+ (add_le_add (smul_le_smul_of_nonneg_left (le_max_left _ _) ha)
+ (smul_le_smul_of_nonneg_left (le_max_right _ _) hb))
_ = max (f x) (f y) := Convex.combo_self hab _
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
-/
@@ -862,8 +866,8 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx hy hxy ha hb hab
_ ≤ a • max (f x) (f y) + b • max (f x) (f y) :=
- (add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha.le)
- (smul_le_smul_of_nonneg (le_max_right _ _) hb.le))
+ (add_le_add (smul_le_smul_of_nonneg_left (le_max_left _ _) ha.le)
+ (smul_le_smul_of_nonneg_left (le_max_right _ _) hb.le))
_ = max (f x) (f y) := Convex.combo_self hab _
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
-/
@@ -916,7 +920,8 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb hab
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
- (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb))
+ (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos_left h ha)
+ (smul_le_smul_of_nonneg_left hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
-/
@@ -995,7 +1000,8 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb.le hab
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
- (add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb))
+ (add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg_left h ha.le)
+ (smul_lt_smul_of_pos_left hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
-/
@@ -1249,7 +1255,7 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
c • f (a • x + b • y) ≤ c • (a • f x + b • f y) :=
- smul_le_smul_of_nonneg (hf.2 hx hy ha hb hab) hc
+ smul_le_smul_of_nonneg_left (hf.2 hx hy ha hb hab) hc
_ = a • c • f x + b • c • f y := by
rw [smul_add, smul_comm c, smul_comm c] <;> infer_instance⟩
#align convex_on.smul ConvexOn.smul
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,7 +3,7 @@ Copyright (c) 2019 Alexander Bentkamp. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, François Dupuis
-/
-import Mathbin.Analysis.Convex.Basic
+import Analysis.Convex.Basic
#align_import analysis.convex.function from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -1117,16 +1117,16 @@ theorem neg_strictConcaveOn_iff : StrictConcaveOn 𝕜 s (-f) ↔ StrictConvexOn
#align neg_strict_concave_on_iff neg_strictConcaveOn_iff
-/
-alias neg_convexOn_iff ↔ _ ConcaveOn.neg
+alias ⟨_, ConcaveOn.neg⟩ := neg_convexOn_iff
#align concave_on.neg ConcaveOn.neg
-alias neg_concaveOn_iff ↔ _ ConvexOn.neg
+alias ⟨_, ConvexOn.neg⟩ := neg_concaveOn_iff
#align convex_on.neg ConvexOn.neg
-alias neg_strictConvexOn_iff ↔ _ StrictConcaveOn.neg
+alias ⟨_, StrictConcaveOn.neg⟩ := neg_strictConvexOn_iff
#align strict_concave_on.neg StrictConcaveOn.neg
-alias neg_strictConcaveOn_iff ↔ _ StrictConvexOn.neg
+alias ⟨_, StrictConvexOn.neg⟩ := neg_strictConcaveOn_iff
#align strict_convex_on.neg StrictConvexOn.neg
#print ConvexOn.sub /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,14 +2,11 @@
Copyright (c) 2019 Alexander Bentkamp. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, François Dupuis
-
-! This file was ported from Lean 3 source module analysis.convex.function
-! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Analysis.Convex.Basic
+#align_import analysis.convex.function from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
+
/-!
# Convex and concave functions
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -105,21 +105,29 @@ variable {𝕜 s f}
open OrderDual (toDual ofDual)
+#print ConvexOn.dual /-
theorem ConvexOn.dual (hf : ConvexOn 𝕜 s f) : ConcaveOn 𝕜 s (toDual ∘ f) :=
hf
#align convex_on.dual ConvexOn.dual
+-/
+#print ConcaveOn.dual /-
theorem ConcaveOn.dual (hf : ConcaveOn 𝕜 s f) : ConvexOn 𝕜 s (toDual ∘ f) :=
hf
#align concave_on.dual ConcaveOn.dual
+-/
+#print StrictConvexOn.dual /-
theorem StrictConvexOn.dual (hf : StrictConvexOn 𝕜 s f) : StrictConcaveOn 𝕜 s (toDual ∘ f) :=
hf
#align strict_convex_on.dual StrictConvexOn.dual
+-/
+#print StrictConcaveOn.dual /-
theorem StrictConcaveOn.dual (hf : StrictConcaveOn 𝕜 s f) : StrictConvexOn 𝕜 s (toDual ∘ f) :=
hf
#align strict_concave_on.dual StrictConcaveOn.dual
+-/
#print convexOn_id /-
theorem convexOn_id {s : Set β} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s id :=
@@ -133,26 +141,35 @@ theorem concaveOn_id {s : Set β} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s id :=
#align concave_on_id concaveOn_id
-/
+#print ConvexOn.subset /-
theorem ConvexOn.subset {t : Set E} (hf : ConvexOn 𝕜 t f) (hst : s ⊆ t) (hs : Convex 𝕜 s) :
ConvexOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align convex_on.subset ConvexOn.subset
+-/
+#print ConcaveOn.subset /-
theorem ConcaveOn.subset {t : Set E} (hf : ConcaveOn 𝕜 t f) (hst : s ⊆ t) (hs : Convex 𝕜 s) :
ConcaveOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align concave_on.subset ConcaveOn.subset
+-/
+#print StrictConvexOn.subset /-
theorem StrictConvexOn.subset {t : Set E} (hf : StrictConvexOn 𝕜 t f) (hst : s ⊆ t)
(hs : Convex 𝕜 s) : StrictConvexOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align strict_convex_on.subset StrictConvexOn.subset
+-/
+#print StrictConcaveOn.subset /-
theorem StrictConcaveOn.subset {t : Set E} (hf : StrictConcaveOn 𝕜 t f) (hst : s ⊆ t)
(hs : Convex 𝕜 s) : StrictConcaveOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align strict_concave_on.subset StrictConcaveOn.subset
+-/
+#print ConvexOn.comp /-
theorem ConvexOn.comp (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
(hg' : MonotoneOn g (f '' s)) : ConvexOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
@@ -161,7 +178,9 @@ theorem ConvexOn.comp (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
hf.2 hx hy ha hb hab).trans <|
hg.2 (mem_image_of_mem f hx) (mem_image_of_mem f hy) ha hb hab⟩
#align convex_on.comp ConvexOn.comp
+-/
+#print ConcaveOn.comp /-
theorem ConcaveOn.comp (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f)
(hg' : MonotoneOn g (f '' s)) : ConcaveOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
@@ -170,17 +189,23 @@ theorem ConcaveOn.comp (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f
(mem_image_of_mem f <| hf.1 hx hy ha hb hab) <|
hf.2 hx hy ha hb hab⟩
#align concave_on.comp ConcaveOn.comp
+-/
+#print ConvexOn.comp_concaveOn /-
theorem ConvexOn.comp_concaveOn (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f)
(hg' : AntitoneOn g (f '' s)) : ConvexOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg'
#align convex_on.comp_concave_on ConvexOn.comp_concaveOn
+-/
+#print ConcaveOn.comp_convexOn /-
theorem ConcaveOn.comp_convexOn (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
(hg' : AntitoneOn g (f '' s)) : ConcaveOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg'
#align concave_on.comp_convex_on ConcaveOn.comp_convexOn
+-/
+#print StrictConvexOn.comp /-
theorem StrictConvexOn.comp (hg : StrictConvexOn 𝕜 (f '' s) g) (hf : StrictConvexOn 𝕜 s f)
(hg' : StrictMonoOn g (f '' s)) (hf' : s.InjOn f) : StrictConvexOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -189,7 +214,9 @@ theorem StrictConvexOn.comp (hg : StrictConvexOn 𝕜 (f '' s) g) (hf : StrictCo
hf.2 hx hy hxy ha hb hab).trans <|
hg.2 (mem_image_of_mem f hx) (mem_image_of_mem f hy) (mt (hf' hx hy) hxy) ha hb hab⟩
#align strict_convex_on.comp StrictConvexOn.comp
+-/
+#print StrictConcaveOn.comp /-
theorem StrictConcaveOn.comp (hg : StrictConcaveOn 𝕜 (f '' s) g) (hf : StrictConcaveOn 𝕜 s f)
(hg' : StrictMonoOn g (f '' s)) (hf' : s.InjOn f) : StrictConcaveOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -198,18 +225,23 @@ theorem StrictConcaveOn.comp (hg : StrictConcaveOn 𝕜 (f '' s) g) (hf : Strict
(mem_image_of_mem f <| hf.1 hx hy ha.le hb.le hab) <|
hf.2 hx hy hxy ha hb hab⟩
#align strict_concave_on.comp StrictConcaveOn.comp
+-/
+#print StrictConvexOn.comp_strictConcaveOn /-
theorem StrictConvexOn.comp_strictConcaveOn (hg : StrictConvexOn 𝕜 (f '' s) g)
(hf : StrictConcaveOn 𝕜 s f) (hg' : StrictAntiOn g (f '' s)) (hf' : s.InjOn f) :
StrictConvexOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg' hf'
#align strict_convex_on.comp_strict_concave_on StrictConvexOn.comp_strictConcaveOn
+-/
+#print StrictConcaveOn.comp_strictConvexOn /-
theorem StrictConcaveOn.comp_strictConvexOn (hg : StrictConcaveOn 𝕜 (f '' s) g)
(hf : StrictConvexOn 𝕜 s f) (hg' : StrictAntiOn g (f '' s)) (hf' : s.InjOn f) :
StrictConcaveOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg' hf'
#align strict_concave_on.comp_strict_convex_on StrictConcaveOn.comp_strictConvexOn
+-/
end SMul
@@ -217,6 +249,7 @@ section DistribMulAction
variable [SMul 𝕜 E] [DistribMulAction 𝕜 β] {s : Set E} {f g : E → β}
+#print ConvexOn.add /-
theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
@@ -224,10 +257,13 @@ theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
add_le_add (hf.2 hx hy ha hb hab) (hg.2 hx hy ha hb hab)
_ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]⟩
#align convex_on.add ConvexOn.add
+-/
+#print ConcaveOn.add /-
theorem ConcaveOn.add (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f + g) :=
hf.dual.add hg
#align concave_on.add ConcaveOn.add
+-/
end DistribMulAction
@@ -235,24 +271,32 @@ section Module
variable [SMul 𝕜 E] [Module 𝕜 β] {s : Set E} {f : E → β}
+#print convexOn_const /-
theorem convexOn_const (c : β) (hs : Convex 𝕜 s) : ConvexOn 𝕜 s fun x : E => c :=
⟨hs, fun x y _ _ a b _ _ hab => (Convex.combo_self hab c).ge⟩
#align convex_on_const convexOn_const
+-/
+#print concaveOn_const /-
theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun x : E => c :=
@convexOn_const _ _ βᵒᵈ _ _ _ _ _ _ c hs
#align concave_on_const concaveOn_const
+-/
+#print convexOn_of_convex_epigraph /-
theorem convexOn_of_convex_epigraph (h : Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2}) :
ConvexOn 𝕜 s f :=
⟨fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).1,
fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).2⟩
#align convex_on_of_convex_epigraph convexOn_of_convex_epigraph
+-/
+#print concaveOn_of_convex_hypograph /-
theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1}) :
ConcaveOn 𝕜 s f :=
@convexOn_of_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ h
#align concave_on_of_convex_hypograph concaveOn_of_convex_hypograph
+-/
end Module
@@ -260,6 +304,7 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+#print ConvexOn.convex_le /-
theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | f x ≤ r}) :=
fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha hb hab,
@@ -269,11 +314,15 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x
(add_le_add (smul_le_smul_of_nonneg hx.2 ha) (smul_le_smul_of_nonneg hy.2 hb))
_ = r := Convex.combo_self hab r⟩
#align convex_on.convex_le ConvexOn.convex_le
+-/
+#print ConcaveOn.convex_ge /-
theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | r ≤ f x}) :=
hf.dual.convex_le r
#align concave_on.convex_ge ConcaveOn.convex_ge
+-/
+#print ConvexOn.convex_epigraph /-
theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2} :=
by
@@ -283,21 +332,28 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
_ ≤ a • r + b • t := add_le_add (smul_le_smul_of_nonneg hr ha) (smul_le_smul_of_nonneg ht hb)
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
+-/
+#print ConcaveOn.convex_hypograph /-
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1} :=
hf.dual.convex_epigraph
#align concave_on.convex_hypograph ConcaveOn.convex_hypograph
+-/
+#print convexOn_iff_convex_epigraph /-
theorem convexOn_iff_convex_epigraph :
ConvexOn 𝕜 s f ↔ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2} :=
⟨ConvexOn.convex_epigraph, convexOn_of_convex_epigraph⟩
#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraph
+-/
+#print concaveOn_iff_convex_hypograph /-
theorem concaveOn_iff_convex_hypograph :
ConcaveOn 𝕜 s f ↔ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1} :=
@convexOn_iff_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ f
#align concave_on_iff_convex_hypograph concaveOn_iff_convex_hypograph
+-/
end OrderedSMul
@@ -305,6 +361,7 @@ section Module
variable [Module 𝕜 E] [SMul 𝕜 β] {s : Set E} {f : E → β}
+#print ConvexOn.translate_right /-
/-- Right translation preserves convexity. -/
theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
ConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
@@ -314,24 +371,31 @@ theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
rw [smul_add, smul_add, add_add_add_comm, Convex.combo_self hab]
_ ≤ a • f (c + x) + b • f (c + y) := hf.2 hx hy ha hb hab⟩
#align convex_on.translate_right ConvexOn.translate_right
+-/
+#print ConcaveOn.translate_right /-
/-- Right translation preserves concavity. -/
theorem ConcaveOn.translate_right (hf : ConcaveOn 𝕜 s f) (c : E) :
ConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
hf.dual.translate_right _
#align concave_on.translate_right ConcaveOn.translate_right
+-/
+#print ConvexOn.translate_left /-
/-- Left translation preserves convexity. -/
theorem ConvexOn.translate_left (hf : ConvexOn 𝕜 s f) (c : E) :
ConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align convex_on.translate_left ConvexOn.translate_left
+-/
+#print ConcaveOn.translate_left /-
/-- Left translation preserves concavity. -/
theorem ConcaveOn.translate_left (hf : ConcaveOn 𝕜 s f) (c : E) :
ConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) :=
hf.dual.translate_left _
#align concave_on.translate_left ConcaveOn.translate_left
+-/
end Module
@@ -339,6 +403,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β]
+#print convexOn_iff_forall_pos /-
theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -357,7 +422,9 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
· rw [add_zero] at hab ; subst a; simp_rw [zero_smul, add_zero, one_smul]
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
+-/
+#print concaveOn_iff_forall_pos /-
theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -368,7 +435,9 @@ theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → a • f x + b • f y ≤ f (a • x + b • y) :=
@convexOn_iff_forall_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_forall_pos concaveOn_iff_forall_pos
+-/
+#print convexOn_iff_pairwise_pos /-
theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -383,7 +452,9 @@ theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
· rw [Convex.combo_self hab, Convex.combo_self hab]
exact h hx hy hxy ha hb hab
#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_pos
+-/
+#print concaveOn_iff_pairwise_pos /-
theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -391,32 +462,42 @@ theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → a • f x + b • f y ≤ f (a • x + b • y) :=
@convexOn_iff_pairwise_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_pos
+-/
+#print LinearMap.convexOn /-
/-- A linear map is convex. -/
theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s f :=
⟨hs, fun _ _ _ _ _ _ _ _ _ => by rw [f.map_add, f.map_smul, f.map_smul]⟩
#align linear_map.convex_on LinearMap.convexOn
+-/
+#print LinearMap.concaveOn /-
/-- A linear map is concave. -/
theorem LinearMap.concaveOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s f :=
⟨hs, fun _ _ _ _ _ _ _ _ _ => by rw [f.map_add, f.map_smul, f.map_smul]⟩
#align linear_map.concave_on LinearMap.concaveOn
+-/
+#print StrictConvexOn.convexOn /-
theorem StrictConvexOn.convexOn {s : Set E} {f : E → β} (hf : StrictConvexOn 𝕜 s f) :
ConvexOn 𝕜 s f :=
convexOn_iff_pairwise_pos.mpr
⟨hf.1, fun x hx y hy hxy a b ha hb hab => (hf.2 hx hy hxy ha hb hab).le⟩
#align strict_convex_on.convex_on StrictConvexOn.convexOn
+-/
+#print StrictConcaveOn.concaveOn /-
theorem StrictConcaveOn.concaveOn {s : Set E} {f : E → β} (hf : StrictConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s f :=
hf.dual.ConvexOn
#align strict_concave_on.concave_on StrictConcaveOn.concaveOn
+-/
section OrderedSMul
variable [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+#print StrictConvexOn.convex_lt /-
theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
Convex 𝕜 ({x ∈ s | f x < r}) :=
convex_iff_pairwise_pos.2 fun x hx y hy hxy a b ha hb hab =>
@@ -427,11 +508,14 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
(add_le_add (smul_lt_smul_of_pos hx.2 ha).le (smul_lt_smul_of_pos hy.2 hb).le)
_ = r := Convex.combo_self hab r⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
+-/
+#print StrictConcaveOn.convex_gt /-
theorem StrictConcaveOn.convex_gt (hf : StrictConcaveOn 𝕜 s f) (r : β) :
Convex 𝕜 ({x ∈ s | r < f x}) :=
hf.dual.convex_lt r
#align strict_concave_on.convex_gt StrictConcaveOn.convex_gt
+-/
end OrderedSMul
@@ -439,6 +523,7 @@ section LinearOrder
variable [LinearOrder E] {s : Set E} {f : E → β}
+#print LinearOrder.convexOn_of_lt /-
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is convex, it suffices to
verify the inequality `f (a • x + b • y) ≤ a • f x + b • f y` only for `x < y` and positive `a`,
@@ -460,7 +545,9 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
+-/
+#print LinearOrder.concaveOn_of_lt /-
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is concave it suffices to
verify the inequality `a • f x + b • f y ≤ f (a • x + b • y)` for `x < y` and positive `a`, `b`. The
@@ -476,7 +563,9 @@ theorem LinearOrder.concaveOn_of_lt (hs : Convex 𝕜 s)
ConcaveOn 𝕜 s f :=
@LinearOrder.convexOn_of_lt _ _ βᵒᵈ _ _ _ _ _ _ s f hs hf
#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_lt
+-/
+#print LinearOrder.strictConvexOn_of_lt /-
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly convex, it suffices
to verify the inequality `f (a • x + b • y) < a • f x + b • f y` for `x < y` and positive `a`, `b`.
@@ -497,7 +586,9 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
+-/
+#print LinearOrder.strictConcaveOn_of_lt /-
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly concave it suffices
to verify the inequality `a • f x + b • f y < f (a • x + b • y)` for `x < y` and positive `a`, `b`.
@@ -513,6 +604,7 @@ theorem LinearOrder.strictConcaveOn_of_lt (hs : Convex 𝕜 s)
StrictConcaveOn 𝕜 s f :=
@LinearOrder.strictConvexOn_of_lt _ _ βᵒᵈ _ _ _ _ _ _ _ _ hs hf
#align linear_order.strict_concave_on_of_lt LinearOrder.strictConcaveOn_of_lt
+-/
end LinearOrder
@@ -522,6 +614,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
+#print ConvexOn.comp_linearMap /-
/-- If `g` is convex on `s`, so is `(f ∘ g)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
ConvexOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -530,12 +623,15 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
f (g (a • x + b • y)) = f (a • g x + b • g y) := by rw [g.map_add, g.map_smul, g.map_smul]
_ ≤ a • f (g x) + b • f (g y) := hf.2 hx hy ha hb hab⟩
#align convex_on.comp_linear_map ConvexOn.comp_linearMap
+-/
+#print ConcaveOn.comp_linearMap /-
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConcaveOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConcaveOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
ConcaveOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
hf.dual.comp_linearMap g
#align concave_on.comp_linear_map ConcaveOn.comp_linearMap
+-/
end Module
@@ -549,6 +645,7 @@ section DistribMulAction
variable [SMul 𝕜 E] [DistribMulAction 𝕜 β] {s : Set E} {f g : E → β}
+#print StrictConvexOn.add_convexOn /-
theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -557,12 +654,16 @@ theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexO
add_lt_add_of_lt_of_le (hf.2 hx hy hxy ha hb hab) (hg.2 hx hy ha.le hb.le hab)
_ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]⟩
#align strict_convex_on.add_convex_on StrictConvexOn.add_convexOn
+-/
+#print ConvexOn.add_strictConvexOn /-
theorem ConvexOn.add_strictConvexOn (hf : ConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
add_comm g f ▸ hg.add_convexOn hf
#align convex_on.add_strict_convex_on ConvexOn.add_strictConvexOn
+-/
+#print StrictConvexOn.add /-
theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -571,21 +672,28 @@ theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
add_lt_add (hf.2 hx hy hxy ha hb hab) (hg.2 hx hy hxy ha hb hab)
_ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]⟩
#align strict_convex_on.add StrictConvexOn.add
+-/
+#print StrictConcaveOn.add_concaveOn /-
theorem StrictConcaveOn.add_concaveOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add_convexOn hg.dual
#align strict_concave_on.add_concave_on StrictConcaveOn.add_concaveOn
+-/
+#print ConcaveOn.add_strictConcaveOn /-
theorem ConcaveOn.add_strictConcaveOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add_strictConvexOn hg.dual
#align concave_on.add_strict_concave_on ConcaveOn.add_strictConcaveOn
+-/
+#print StrictConcaveOn.add /-
theorem StrictConcaveOn.add (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add hg
#align strict_concave_on.add StrictConcaveOn.add
+-/
end DistribMulAction
@@ -593,6 +701,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+#print ConvexOn.convex_lt /-
theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | f x < r}) :=
convex_iff_forall_pos.2 fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
@@ -603,11 +712,15 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x
(smul_le_smul_of_nonneg hy.2.le hb.le))
_ = r := Convex.combo_self hab _⟩
#align convex_on.convex_lt ConvexOn.convex_lt
+-/
+#print ConcaveOn.convex_gt /-
theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | r < f x}) :=
hf.dual.convex_lt r
#align concave_on.convex_gt ConcaveOn.convex_gt
+-/
+#print ConvexOn.openSegment_subset_strict_epigraph /-
theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ f p.1 < p.2) (hq : q.1 ∈ s ∧ f q.1 ≤ q.2) :
openSegment 𝕜 p q ⊆ {p : E × β | p.1 ∈ s ∧ f p.1 < p.2} :=
@@ -619,23 +732,30 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
_ < a • p.2 + b • q.2 :=
add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
+-/
+#print ConcaveOn.openSegment_subset_strict_hypograph /-
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ p.2 < f p.1) (hq : q.1 ∈ s ∧ q.2 ≤ f q.1) :
openSegment 𝕜 p q ⊆ {p : E × β | p.1 ∈ s ∧ p.2 < f p.1} :=
hf.dual.openSegment_subset_strict_epigraph p q hp hq
#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypograph
+-/
+#print ConvexOn.convex_strict_epigraph /-
theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 < p.2} :=
convex_iff_openSegment_subset.mpr fun p hp q hq =>
hf.openSegment_subset_strict_epigraph p q hp ⟨hq.1, hq.2.le⟩
#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraph
+-/
+#print ConcaveOn.convex_strict_hypograph /-
theorem ConcaveOn.convex_strict_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 < f p.1} :=
hf.dual.convex_strict_epigraph
#align concave_on.convex_strict_hypograph ConcaveOn.convex_strict_hypograph
+-/
end Module
@@ -646,6 +766,7 @@ section LinearOrderedAddCommMonoid
variable [LinearOrderedAddCommMonoid β] [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E}
{f g : E → β}
+#print ConvexOn.sup /-
/-- The pointwise maximum of convex functions is convex. -/
theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexOn 𝕜 s (f ⊔ g) :=
by
@@ -661,12 +782,16 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
add_le_add (smul_le_smul_of_nonneg le_sup_right ha) (smul_le_smul_of_nonneg le_sup_right hb)
#align convex_on.sup ConvexOn.sup
+-/
+#print ConcaveOn.inf /-
/-- The pointwise minimum of concave functions is concave. -/
theorem ConcaveOn.inf (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
#align concave_on.inf ConcaveOn.inf
+-/
+#print StrictConvexOn.sup /-
/-- The pointwise maximum of strictly convex functions is strictly convex. -/
theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f ⊔ g) :=
@@ -683,13 +808,17 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
add_le_add (smul_le_smul_of_nonneg le_sup_right ha.le)
(smul_le_smul_of_nonneg le_sup_right hb.le))⟩
#align strict_convex_on.sup StrictConvexOn.sup
+-/
+#print StrictConcaveOn.inf /-
/-- The pointwise minimum of strictly concave functions is strictly concave. -/
theorem StrictConcaveOn.inf (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
#align strict_concave_on.inf StrictConcaveOn.inf
+-/
+#print ConvexOn.le_on_segment' /-
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s) {a b : 𝕜}
(ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : f (a • x + b • y) ≤ max (f x) (f y) :=
@@ -700,26 +829,34 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
(smul_le_smul_of_nonneg (le_max_right _ _) hb))
_ = max (f x) (f y) := Convex.combo_self hab _
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
+-/
+#print ConcaveOn.ge_on_segment' /-
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : min (f x) (f y) ≤ f (a • x + b • y) :=
hf.dual.le_on_segment' hx hy ha hb hab
#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'
+-/
+#print ConvexOn.le_on_segment /-
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : f z ≤ max (f x) (f y) :=
let ⟨a, b, ha, hb, hab, hz⟩ := hz
hz ▸ hf.le_on_segment' hx hy ha hb hab
#align convex_on.le_on_segment ConvexOn.le_on_segment
+-/
+#print ConcaveOn.ge_on_segment /-
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : min (f x) (f y) ≤ f z :=
hf.dual.le_on_segment hx hy hz
#align concave_on.ge_on_segment ConcaveOn.ge_on_segment
+-/
+#print StrictConvexOn.lt_on_open_segment' /-
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -732,7 +869,9 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
(smul_le_smul_of_nonneg (le_max_right _ _) hb.le))
_ = max (f x) (f y) := Convex.combo_self hab _
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
+-/
+#print StrictConcaveOn.lt_on_open_segment' /-
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -740,7 +879,9 @@ theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y
min (f x) (f y) < f (a • x + b • y) :=
hf.dual.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'
+-/
+#print StrictConvexOn.lt_on_openSegment /-
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
@@ -748,13 +889,16 @@ theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z :
let ⟨a, b, ha, hb, hab, hz⟩ := hz
hz ▸ hf.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegment
+-/
+#print StrictConcaveOn.lt_on_openSegment /-
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_openSegment (hf : StrictConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
(hy : y ∈ s) (hxy : x ≠ y) (hz : z ∈ openSegment 𝕜 x y) : min (f x) (f y) < f z :=
hf.dual.lt_on_openSegment hx hy hxy hz
#align strict_concave_on.lt_on_open_segment StrictConcaveOn.lt_on_openSegment
+-/
end LinearOrderedAddCommMonoid
@@ -766,6 +910,7 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
+#print ConvexOn.le_left_of_right_le' /-
theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f y ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f x :=
@@ -777,49 +922,64 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
(add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
+-/
+#print ConcaveOn.left_le_of_le_right' /-
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f (a • x + b • y) ≤ f y) :
f x ≤ f (a • x + b • y) :=
hf.dual.le_left_of_right_le' hx hy ha hb hab hfy
#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'
+-/
+#print ConvexOn.le_right_of_left_le' /-
theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f y := by
rw [add_comm] at hab hfx ⊢
exact hf.le_left_of_right_le' hy hx hb ha hab hfx
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
+-/
+#print ConcaveOn.right_le_of_le_left' /-
theorem ConcaveOn.right_le_of_le_left' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) ≤ f x) :
f y ≤ f (a • x + b • y) :=
hf.dual.le_right_of_left_le' hx hy ha hb hab hfx
#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'
+-/
+#print ConvexOn.le_left_of_right_le /-
theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y ≤ f z) : f z ≤ f x :=
by
obtain ⟨a, b, ha, hb, hab, rfl⟩ := hz
exact hf.le_left_of_right_le' hx hy ha hb.le hab hyz
#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_le
+-/
+#print ConcaveOn.left_le_of_le_right /-
theorem ConcaveOn.left_le_of_le_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z ≤ f y) : f x ≤ f z :=
hf.dual.le_left_of_right_le hx hy hz hyz
#align concave_on.left_le_of_le_right ConcaveOn.left_le_of_le_right
+-/
+#print ConvexOn.le_right_of_left_le /-
theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x ≤ f z) : f z ≤ f y :=
by
obtain ⟨a, b, ha, hb, hab, rfl⟩ := hz
exact hf.le_right_of_left_le' hx hy ha.le hb hab hxz
#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_le
+-/
+#print ConcaveOn.right_le_of_le_left /-
theorem ConcaveOn.right_le_of_le_left (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z ≤ f x) : f y ≤ f z :=
hf.dual.le_right_of_left_le hx hy hz hxz
#align concave_on.right_le_of_le_left ConcaveOn.right_le_of_le_left
+-/
end OrderedSMul
@@ -827,6 +987,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
+#print ConvexOn.lt_left_of_right_lt' /-
/- The following lemmas don't require `module 𝕜 E` if you add the hypothesis `x ≠ y`. At the time of
the writing, we decided the resulting lemmas wouldn't be useful. Feel free to reintroduce them. -/
theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -840,49 +1001,64 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
(add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
+-/
+#print ConcaveOn.left_lt_of_lt_right' /-
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f (a • x + b • y) < f y) :
f x < f (a • x + b • y) :=
hf.dual.lt_left_of_right_lt' hx hy ha hb hab hfy
#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'
+-/
+#print ConvexOn.lt_right_of_left_lt' /-
theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x < f (a • x + b • y)) :
f (a • x + b • y) < f y := by
rw [add_comm] at hab hfx ⊢
exact hf.lt_left_of_right_lt' hy hx hb ha hab hfx
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
+-/
+#print ConcaveOn.lt_right_of_left_lt' /-
theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) < f x) :
f y < f (a • x + b • y) :=
hf.dual.lt_right_of_left_lt' hx hy ha hb hab hfx
#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'
+-/
+#print ConvexOn.lt_left_of_right_lt /-
theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y < f z) : f z < f x :=
by
obtain ⟨a, b, ha, hb, hab, rfl⟩ := hz
exact hf.lt_left_of_right_lt' hx hy ha hb hab hyz
#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_lt
+-/
+#print ConcaveOn.left_lt_of_lt_right /-
theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z < f y) : f x < f z :=
hf.dual.lt_left_of_right_lt hx hy hz hyz
#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_right
+-/
+#print ConvexOn.lt_right_of_left_lt /-
theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x < f z) : f z < f y :=
by
obtain ⟨a, b, ha, hb, hab, rfl⟩ := hz
exact hf.lt_right_of_left_lt' hx hy ha hb hab hxz
#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_lt
+-/
+#print ConcaveOn.lt_right_of_left_lt /-
theorem ConcaveOn.lt_right_of_left_lt (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z < f x) : f y < f z :=
hf.dual.lt_right_of_left_lt hx hy hz hxz
#align concave_on.lt_right_of_left_lt ConcaveOn.lt_right_of_left_lt
+-/
end Module
@@ -892,6 +1068,7 @@ section OrderedAddCommGroup
variable [OrderedAddCommGroup β] [SMul 𝕜 E] [Module 𝕜 β] {s : Set E} {f g : E → β}
+#print neg_convexOn_iff /-
/-- A function `-f` is convex iff `f` is concave. -/
@[simp]
theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
@@ -907,13 +1084,17 @@ theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
simp_rw [neg_add, Pi.neg_apply, smul_neg, neg_neg]
exact h hx hy ha hb hab
#align neg_convex_on_iff neg_convexOn_iff
+-/
+#print neg_concaveOn_iff /-
/-- A function `-f` is concave iff `f` is convex. -/
@[simp]
theorem neg_concaveOn_iff : ConcaveOn 𝕜 s (-f) ↔ ConvexOn 𝕜 s f := by
rw [← neg_convexOn_iff, neg_neg f]
#align neg_concave_on_iff neg_concaveOn_iff
+-/
+#print neg_strictConvexOn_iff /-
/-- A function `-f` is strictly convex iff `f` is strictly concave. -/
@[simp]
theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn 𝕜 s f :=
@@ -929,12 +1110,15 @@ theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn
simp_rw [neg_add, Pi.neg_apply, smul_neg, neg_neg]
exact h hx hy hxy ha hb hab
#align neg_strict_convex_on_iff neg_strictConvexOn_iff
+-/
+#print neg_strictConcaveOn_iff /-
/-- A function `-f` is strictly concave iff `f` is strictly convex. -/
@[simp]
theorem neg_strictConcaveOn_iff : StrictConcaveOn 𝕜 s (-f) ↔ StrictConvexOn 𝕜 s f := by
rw [← neg_strictConvexOn_iff, neg_neg f]
#align neg_strict_concave_on_iff neg_strictConcaveOn_iff
+-/
alias neg_convexOn_iff ↔ _ ConcaveOn.neg
#align concave_on.neg ConcaveOn.neg
@@ -948,43 +1132,59 @@ alias neg_strictConvexOn_iff ↔ _ StrictConcaveOn.neg
alias neg_strictConcaveOn_iff ↔ _ StrictConvexOn.neg
#align strict_convex_on.neg StrictConvexOn.neg
+#print ConvexOn.sub /-
theorem ConvexOn.sub (hf : ConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align convex_on.sub ConvexOn.sub
+-/
+#print ConcaveOn.sub /-
theorem ConcaveOn.sub (hf : ConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align concave_on.sub ConcaveOn.sub
+-/
+#print StrictConvexOn.sub /-
theorem StrictConvexOn.sub (hf : StrictConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_convex_on.sub StrictConvexOn.sub
+-/
+#print StrictConcaveOn.sub /-
theorem StrictConcaveOn.sub (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_concave_on.sub StrictConcaveOn.sub
+-/
+#print ConvexOn.sub_strictConcaveOn /-
theorem ConvexOn.sub_strictConcaveOn (hf : ConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConvexOn hg.neg
#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOn
+-/
+#print ConcaveOn.sub_strictConvexOn /-
theorem ConcaveOn.sub_strictConvexOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConcaveOn hg.neg
#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOn
+-/
+#print StrictConvexOn.sub_concaveOn /-
theorem StrictConvexOn.sub_concaveOn (hf : StrictConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_convexOn hg.neg
#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOn
+-/
+#print StrictConcaveOn.sub_convexOn /-
theorem StrictConcaveOn.sub_convexOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_concaveOn hg.neg
#align strict_concave_on.sub_convex_on StrictConcaveOn.sub_convexOn
+-/
end OrderedAddCommGroup
@@ -995,6 +1195,7 @@ section AddCancelCommMonoid
variable [AddCancelCommMonoid E] [OrderedAddCommMonoid β] [Module 𝕜 E] [SMul 𝕜 β] {s : Set E}
{f : E → β}
+#print StrictConvexOn.translate_right /-
/-- Right translation preserves strict convexity. -/
theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
StrictConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
@@ -1004,24 +1205,31 @@ theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
rw [smul_add, smul_add, add_add_add_comm, Convex.combo_self hab]
_ < a • f (c + x) + b • f (c + y) := hf.2 hx hy ((add_right_injective c).Ne hxy) ha hb hab⟩
#align strict_convex_on.translate_right StrictConvexOn.translate_right
+-/
+#print StrictConcaveOn.translate_right /-
/-- Right translation preserves strict concavity. -/
theorem StrictConcaveOn.translate_right (hf : StrictConcaveOn 𝕜 s f) (c : E) :
StrictConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
hf.dual.translate_right _
#align strict_concave_on.translate_right StrictConcaveOn.translate_right
+-/
+#print StrictConvexOn.translate_left /-
/-- Left translation preserves strict convexity. -/
theorem StrictConvexOn.translate_left (hf : StrictConvexOn 𝕜 s f) (c : E) :
StrictConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align strict_convex_on.translate_left StrictConvexOn.translate_left
+-/
+#print StrictConcaveOn.translate_left /-
/-- Left translation preserves strict concavity. -/
theorem StrictConcaveOn.translate_left (hf : StrictConcaveOn 𝕜 s f) (c : E) :
StrictConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align strict_concave_on.translate_left StrictConcaveOn.translate_left
+-/
end AddCancelCommMonoid
@@ -1039,6 +1247,7 @@ section Module
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+#print ConvexOn.smul /-
theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : ConvexOn 𝕜 s fun x => c • f x :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
@@ -1047,11 +1256,14 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
_ = a • c • f x + b • c • f y := by
rw [smul_add, smul_comm c, smul_comm c] <;> infer_instance⟩
#align convex_on.smul ConvexOn.smul
+-/
+#print ConcaveOn.smul /-
theorem ConcaveOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s fun x => c • f x :=
hf.dual.smul hc
#align concave_on.smul ConcaveOn.smul
+-/
end Module
@@ -1071,6 +1283,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
+#print ConvexOn.comp_affineMap /-
/-- If a function is convex on `s`, it remains convex when precomposed by an affine map. -/
theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConvexOn 𝕜 s f) :
ConvexOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -1080,12 +1293,15 @@ theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F
_ = f (a • g x + b • g y) := by rw [Convex.combo_affine_apply hab]
_ ≤ a • f (g x) + b • f (g y) := hf.2 hx hy ha hb hab⟩
#align convex_on.comp_affine_map ConvexOn.comp_affineMap
+-/
+#print ConcaveOn.comp_affineMap /-
/-- If a function is concave on `s`, it remains concave when precomposed by an affine map. -/
theorem ConcaveOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
hf.dual.comp_affineMap g
#align concave_on.comp_affine_map ConcaveOn.comp_affineMap
+-/
end Module
@@ -1105,6 +1321,7 @@ section SMul
variable [SMul 𝕜 E] [SMul 𝕜 β] {s : Set E}
+#print convexOn_iff_div /-
theorem convexOn_iff_div {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1127,7 +1344,9 @@ theorem convexOn_iff_div {f : E → β} :
intro h x hx y hy a b ha hb hab
simpa [hab, zero_lt_one] using h hx hy ha hb⟩
#align convex_on_iff_div convexOn_iff_div
+-/
+#print concaveOn_iff_div /-
theorem concaveOn_iff_div {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1143,7 +1362,9 @@ theorem concaveOn_iff_div {f : E → β} :
f ((a / (a + b)) • x + (b / (a + b)) • y) :=
@convexOn_iff_div _ _ βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_div concaveOn_iff_div
+-/
+#print strictConvexOn_iff_div /-
theorem strictConvexOn_iff_div {f : E → β} :
StrictConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1167,7 +1388,9 @@ theorem strictConvexOn_iff_div {f : E → β} :
intro h x hx y hy hxy a b ha hb hab
simpa [hab, zero_lt_one] using h hx hy hxy ha hb⟩
#align strict_convex_on_iff_div strictConvexOn_iff_div
+-/
+#print strictConcaveOn_iff_div /-
theorem strictConcaveOn_iff_div {f : E → β} :
StrictConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1183,6 +1406,7 @@ theorem strictConcaveOn_iff_div {f : E → β} :
f ((a / (a + b)) • x + (b / (a + b)) • y) :=
@strictConvexOn_iff_div _ _ βᵒᵈ _ _ _ _ _ _ _
#align strict_concave_on_iff_div strictConcaveOn_iff_div
+-/
end SMul
@@ -1195,27 +1419,35 @@ section
variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module 𝕜 β] [OrderedSMul 𝕜 β]
{x y z : 𝕜} {s : Set 𝕜} {f : 𝕜 → β}
+#print ConvexOn.le_right_of_left_le'' /-
theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y)
(hyz : y ≤ z) (h : f x ≤ f y) : f y ≤ f z :=
hyz.eq_or_lt.elim (fun hyz => (congr_arg f hyz).le) fun hyz =>
hf.le_right_of_left_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''
+-/
+#print ConvexOn.le_left_of_right_le'' /-
theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x ≤ y)
(hyz : y < z) (h : f z ≤ f y) : f y ≤ f x :=
hxy.eq_or_lt.elim (fun hxy => (congr_arg f hxy).ge) fun hxy =>
hf.le_left_of_right_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''
+-/
+#print ConcaveOn.right_le_of_le_left'' /-
theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x < y) (hyz : y ≤ z) (h : f y ≤ f x) : f z ≤ f y :=
hf.dual.le_right_of_left_le'' hx hz hxy hyz h
#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''
+-/
+#print ConcaveOn.left_le_of_le_right'' /-
theorem ConcaveOn.left_le_of_le_right'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x ≤ y) (hyz : y < z) (h : f y ≤ f z) : f x ≤ f y :=
hf.dual.le_left_of_right_le'' hx hz hxy hyz h
#align concave_on.left_le_of_le_right'' ConcaveOn.left_le_of_le_right''
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -222,8 +222,7 @@ theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
calc
f (a • x + b • y) + g (a • x + b • y) ≤ a • f x + b • f y + (a • g x + b • g y) :=
add_le_add (hf.2 hx hy ha hb hab) (hg.2 hx hy ha hb hab)
- _ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]
- ⟩
+ _ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]⟩
#align convex_on.add ConvexOn.add
theorem ConcaveOn.add (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f + g) :=
@@ -268,8 +267,7 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha hb hab
_ ≤ a • r + b • r :=
(add_le_add (smul_le_smul_of_nonneg hx.2 ha) (smul_le_smul_of_nonneg hy.2 hb))
- _ = r := Convex.combo_self hab r
- ⟩
+ _ = r := Convex.combo_self hab r⟩
#align convex_on.convex_le ConvexOn.convex_le
theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | r ≤ f x}) :=
@@ -284,7 +282,6 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
_ ≤ a • r + b • t := add_le_add (smul_le_smul_of_nonneg hr ha) (smul_le_smul_of_nonneg ht hb)
-
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
@@ -315,8 +312,7 @@ theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
calc
f (c + (a • x + b • y)) = f (a • (c + x) + b • (c + y)) := by
rw [smul_add, smul_add, add_add_add_comm, Convex.combo_self hab]
- _ ≤ a • f (c + x) + b • f (c + y) := hf.2 hx hy ha hb hab
- ⟩
+ _ ≤ a • f (c + x) + b • f (c + y) := hf.2 hx hy ha hb hab⟩
#align convex_on.translate_right ConvexOn.translate_right
/-- Right translation preserves concavity. -/
@@ -429,8 +425,7 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
f (a • x + b • y) < a • f x + b • f y := hf.2 hx.1 hy.1 hxy ha hb hab
_ ≤ a • r + b • r :=
(add_le_add (smul_lt_smul_of_pos hx.2 ha).le (smul_lt_smul_of_pos hy.2 hb).le)
- _ = r := Convex.combo_self hab r
- ⟩
+ _ = r := Convex.combo_self hab r⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
theorem StrictConcaveOn.convex_gt (hf : StrictConcaveOn 𝕜 s f) (r : β) :
@@ -533,8 +528,7 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
⟨hf.1.linear_preimage _, fun x hx y hy a b ha hb hab =>
calc
f (g (a • x + b • y)) = f (a • g x + b • g y) := by rw [g.map_add, g.map_smul, g.map_smul]
- _ ≤ a • f (g x) + b • f (g y) := hf.2 hx hy ha hb hab
- ⟩
+ _ ≤ a • f (g x) + b • f (g y) := hf.2 hx hy ha hb hab⟩
#align convex_on.comp_linear_map ConvexOn.comp_linearMap
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
@@ -561,8 +555,7 @@ theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexO
calc
f (a • x + b • y) + g (a • x + b • y) < a • f x + b • f y + (a • g x + b • g y) :=
add_lt_add_of_lt_of_le (hf.2 hx hy hxy ha hb hab) (hg.2 hx hy ha.le hb.le hab)
- _ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]
- ⟩
+ _ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]⟩
#align strict_convex_on.add_convex_on StrictConvexOn.add_convexOn
theorem ConvexOn.add_strictConvexOn (hf : ConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
@@ -576,8 +569,7 @@ theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
calc
f (a • x + b • y) + g (a • x + b • y) < a • f x + b • f y + (a • g x + b • g y) :=
add_lt_add (hf.2 hx hy hxy ha hb hab) (hg.2 hx hy hxy ha hb hab)
- _ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]
- ⟩
+ _ = a • (f x + g x) + b • (f y + g y) := by rw [smul_add, smul_add, add_add_add_comm]⟩
#align strict_convex_on.add StrictConvexOn.add
theorem StrictConcaveOn.add_concaveOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
@@ -609,8 +601,7 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x
_ < a • r + b • r :=
(add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hx.2 ha)
(smul_le_smul_of_nonneg hy.2.le hb.le))
- _ = r := Convex.combo_self hab _
- ⟩
+ _ = r := Convex.combo_self hab _⟩
#align convex_on.convex_lt ConvexOn.convex_lt
theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | r < f x}) :=
@@ -627,7 +618,6 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
f (a • p.1 + b • q.1) ≤ a • f p.1 + b • f q.1 := hf.2 hp.1 hq.1 ha.le hb.le hab
_ < a • p.2 + b • q.2 :=
add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
-
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
@@ -665,13 +655,11 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
f (a • x + b • y) ≤ a • f x + b • f y := hf.right hx hy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
add_le_add (smul_le_smul_of_nonneg le_sup_left ha) (smul_le_smul_of_nonneg le_sup_left hb)
-
·
calc
g (a • x + b • y) ≤ a • g x + b • g y := hg.right hx hy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
add_le_add (smul_le_smul_of_nonneg le_sup_right ha) (smul_le_smul_of_nonneg le_sup_right hb)
-
#align convex_on.sup ConvexOn.sup
/-- The pointwise minimum of concave functions is concave. -/
@@ -688,14 +676,12 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
f (a • x + b • y) < a • f x + b • f y := hf.2 hx hy hxy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
add_le_add (smul_le_smul_of_nonneg le_sup_left ha.le)
- (smul_le_smul_of_nonneg le_sup_left hb.le)
- )
+ (smul_le_smul_of_nonneg le_sup_left hb.le))
(calc
g (a • x + b • y) < a • g x + b • g y := hg.2 hx hy hxy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
add_le_add (smul_le_smul_of_nonneg le_sup_right ha.le)
- (smul_le_smul_of_nonneg le_sup_right hb.le)
- )⟩
+ (smul_le_smul_of_nonneg le_sup_right hb.le))⟩
#align strict_convex_on.sup StrictConvexOn.sup
/-- The pointwise minimum of strictly concave functions is strictly concave. -/
@@ -713,7 +699,6 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
(add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha)
(smul_le_smul_of_nonneg (le_max_right _ _) hb))
_ = max (f x) (f y) := Convex.combo_self hab _
-
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
@@ -746,7 +731,6 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
(add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha.le)
(smul_le_smul_of_nonneg (le_max_right _ _) hb.le))
_ = max (f x) (f y) := Convex.combo_self hab _
-
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
@@ -792,7 +776,6 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
(add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
-
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -856,7 +839,6 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
(add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
-
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -1020,8 +1002,7 @@ theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
calc
f (c + (a • x + b • y)) = f (a • (c + x) + b • (c + y)) := by
rw [smul_add, smul_add, add_add_add_comm, Convex.combo_self hab]
- _ < a • f (c + x) + b • f (c + y) := hf.2 hx hy ((add_right_injective c).Ne hxy) ha hb hab
- ⟩
+ _ < a • f (c + x) + b • f (c + y) := hf.2 hx hy ((add_right_injective c).Ne hxy) ha hb hab⟩
#align strict_convex_on.translate_right StrictConvexOn.translate_right
/-- Right translation preserves strict concavity. -/
@@ -1063,8 +1044,8 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
calc
c • f (a • x + b • y) ≤ c • (a • f x + b • f y) :=
smul_le_smul_of_nonneg (hf.2 hx hy ha hb hab) hc
- _ = a • c • f x + b • c • f y := by rw [smul_add, smul_comm c, smul_comm c] <;> infer_instance
- ⟩
+ _ = a • c • f x + b • c • f y := by
+ rw [smul_add, smul_comm c, smul_comm c] <;> infer_instance⟩
#align convex_on.smul ConvexOn.smul
theorem ConcaveOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConcaveOn 𝕜 s f) :
@@ -1097,8 +1078,7 @@ theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F
calc
(f ∘ g) (a • x + b • y) = f (g (a • x + b • y)) := rfl
_ = f (a • g x + b • g y) := by rw [Convex.combo_affine_apply hab]
- _ ≤ a • f (g x) + b • f (g y) := hf.2 hx hy ha hb hab
- ⟩
+ _ ≤ a • f (g x) + b • f (g y) := hf.2 hx hy ha hb hab⟩
#align convex_on.comp_affine_map ConvexOn.comp_affineMap
/-- If a function is concave on `s`, it remains concave when precomposed by an affine map. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -244,13 +244,13 @@ theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun x :
@convexOn_const _ _ βᵒᵈ _ _ _ _ _ _ c hs
#align concave_on_const concaveOn_const
-theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 }) :
+theorem convexOn_of_convex_epigraph (h : Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2}) :
ConvexOn 𝕜 s f :=
⟨fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).1,
fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).2⟩
#align convex_on_of_convex_epigraph convexOn_of_convex_epigraph
-theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 }) :
+theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1}) :
ConcaveOn 𝕜 s f :=
@convexOn_of_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ h
#align concave_on_of_convex_hypograph concaveOn_of_convex_hypograph
@@ -261,7 +261,7 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
-theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | f x ≤ r }) :=
+theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | f x ≤ r}) :=
fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha hb hab,
calc
@@ -272,12 +272,12 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_le ConvexOn.convex_le
-theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r ≤ f x }) :=
+theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | r ≤ f x}) :=
hf.dual.convex_le r
#align concave_on.convex_ge ConcaveOn.convex_ge
theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
- Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 } :=
+ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2} :=
by
rintro ⟨x, r⟩ ⟨hx, hr⟩ ⟨y, t⟩ ⟨hy, ht⟩ a b ha hb hab
refine' ⟨hf.1 hx hy ha hb hab, _⟩
@@ -288,17 +288,17 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
- Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
+ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1} :=
hf.dual.convex_epigraph
#align concave_on.convex_hypograph ConcaveOn.convex_hypograph
theorem convexOn_iff_convex_epigraph :
- ConvexOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 } :=
+ ConvexOn 𝕜 s f ↔ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2} :=
⟨ConvexOn.convex_epigraph, convexOn_of_convex_epigraph⟩
#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraph
theorem concaveOn_iff_convex_hypograph :
- ConcaveOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
+ ConcaveOn 𝕜 s f ↔ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1} :=
@convexOn_iff_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ f
#align concave_on_iff_convex_hypograph concaveOn_iff_convex_hypograph
@@ -422,7 +422,7 @@ section OrderedSMul
variable [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
- Convex 𝕜 ({ x ∈ s | f x < r }) :=
+ Convex 𝕜 ({x ∈ s | f x < r}) :=
convex_iff_pairwise_pos.2 fun x hx y hy hxy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
calc
@@ -434,7 +434,7 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
theorem StrictConcaveOn.convex_gt (hf : StrictConcaveOn 𝕜 s f) (r : β) :
- Convex 𝕜 ({ x ∈ s | r < f x }) :=
+ Convex 𝕜 ({x ∈ s | r < f x}) :=
hf.dual.convex_lt r
#align strict_concave_on.convex_gt StrictConcaveOn.convex_gt
@@ -601,7 +601,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
-theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | f x < r }) :=
+theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | f x < r}) :=
convex_iff_forall_pos.2 fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
calc
@@ -613,13 +613,13 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_lt ConvexOn.convex_lt
-theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r < f x }) :=
+theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({x ∈ s | r < f x}) :=
hf.dual.convex_lt r
#align concave_on.convex_gt ConcaveOn.convex_gt
theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ f p.1 < p.2) (hq : q.1 ∈ s ∧ f q.1 ≤ q.2) :
- openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
+ openSegment 𝕜 p q ⊆ {p : E × β | p.1 ∈ s ∧ f p.1 < p.2} :=
by
rintro _ ⟨a, b, ha, hb, hab, rfl⟩
refine' ⟨hf.1 hp.1 hq.1 ha.le hb.le hab, _⟩
@@ -632,18 +632,18 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ p.2 < f p.1) (hq : q.1 ∈ s ∧ q.2 ≤ f q.1) :
- openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
+ openSegment 𝕜 p q ⊆ {p : E × β | p.1 ∈ s ∧ p.2 < f p.1} :=
hf.dual.openSegment_subset_strict_epigraph p q hp hq
#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypograph
theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
- Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
+ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ f p.1 < p.2} :=
convex_iff_openSegment_subset.mpr fun p hp q hq =>
hf.openSegment_subset_strict_epigraph p q hp ⟨hq.1, hq.2.le⟩
#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraph
theorem ConcaveOn.convex_strict_hypograph (hf : ConcaveOn 𝕜 s f) :
- Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
+ Convex 𝕜 {p : E × β | p.1 ∈ s ∧ p.2 < f p.1} :=
hf.dual.convex_strict_epigraph
#align concave_on.convex_strict_hypograph ConcaveOn.convex_strict_hypograph
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -123,13 +123,13 @@ theorem StrictConcaveOn.dual (hf : StrictConcaveOn 𝕜 s f) : StrictConvexOn
#print convexOn_id /-
theorem convexOn_id {s : Set β} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s id :=
- ⟨hs, by intros ; rfl⟩
+ ⟨hs, by intros; rfl⟩
#align convex_on_id convexOn_id
-/
#print concaveOn_id /-
theorem concaveOn_id {s : Set β} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s id :=
- ⟨hs, by intros ; rfl⟩
+ ⟨hs, by intros; rfl⟩
#align concave_on_id concaveOn_id
-/
@@ -356,9 +356,9 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
and_congr_right'
⟨fun h x hx y hy a b ha hb hab => h hx hy ha.le hb.le hab, fun h x hx y hy a b ha hb hab => _⟩
obtain rfl | ha' := ha.eq_or_lt
- · rw [zero_add] at hab; subst b; simp_rw [zero_smul, zero_add, one_smul]
+ · rw [zero_add] at hab ; subst b; simp_rw [zero_smul, zero_add, one_smul]
obtain rfl | hb' := hb.eq_or_lt
- · rw [add_zero] at hab; subst a; simp_rw [zero_smul, add_zero, one_smul]
+ · rw [add_zero] at hab ; subst a; simp_rw [zero_smul, add_zero, one_smul]
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
@@ -461,7 +461,7 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
by
refine' convexOn_iff_pairwise_pos.2 ⟨hs, fun x hx y hy hxy a b ha hb hab => _⟩
wlog h : x < y
- · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
+ · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
@@ -498,7 +498,7 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
by
refine' ⟨hs, fun x hx y hy hxy a b ha hb hab => _⟩
wlog h : x < y
- · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
+ · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
@@ -804,7 +804,7 @@ theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f y := by
- rw [add_comm] at hab hfx⊢
+ rw [add_comm] at hab hfx ⊢
exact hf.le_left_of_right_le' hy hx hb ha hab hfx
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
@@ -868,7 +868,7 @@ theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x < f (a • x + b • y)) :
f (a • x + b • y) < f y := by
- rw [add_comm] at hab hfx⊢
+ rw [add_comm] at hab hfx ⊢
exact hf.lt_left_of_right_lt' hy hx hb ha hab hfx
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
@@ -917,7 +917,7 @@ theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
constructor
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy a b ha hb hab => _⟩
- simp [neg_apply, neg_le, add_comm] at h
+ simp [neg_apply, neg_le, add_comm] at h
exact h hx hy ha hb hab
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy a b ha hb hab => _⟩
@@ -939,7 +939,7 @@ theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn
constructor
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy hxy a b ha hb hab => _⟩
- simp [neg_apply, neg_lt, add_comm] at h
+ simp [neg_apply, neg_lt, add_comm] at h
exact h hx hy hxy ha hb hab
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy hxy a b ha hb hab => _⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -35,7 +35,7 @@ a convex set.
open Finset LinearMap Set
-open BigOperators Classical Convex Pointwise
+open scoped BigOperators Classical Convex Pointwise
variable {𝕜 E F α β ι : Type _}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -105,42 +105,18 @@ variable {𝕜 s f}
open OrderDual (toDual ofDual)
-/- warning: convex_on.dual -> ConvexOn.dual is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
-Case conversion may be inaccurate. Consider using '#align convex_on.dual ConvexOn.dualₓ'. -/
theorem ConvexOn.dual (hf : ConvexOn 𝕜 s f) : ConcaveOn 𝕜 s (toDual ∘ f) :=
hf
#align convex_on.dual ConvexOn.dual
-/- warning: concave_on.dual -> ConcaveOn.dual is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
-Case conversion may be inaccurate. Consider using '#align concave_on.dual ConcaveOn.dualₓ'. -/
theorem ConcaveOn.dual (hf : ConcaveOn 𝕜 s f) : ConvexOn 𝕜 s (toDual ∘ f) :=
hf
#align concave_on.dual ConcaveOn.dual
-/- warning: strict_convex_on.dual -> StrictConvexOn.dual is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.dual StrictConvexOn.dualₓ'. -/
theorem StrictConvexOn.dual (hf : StrictConvexOn 𝕜 s f) : StrictConcaveOn 𝕜 s (toDual ∘ f) :=
hf
#align strict_convex_on.dual StrictConvexOn.dual
-/- warning: strict_concave_on.dual -> StrictConcaveOn.dual is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.dual StrictConcaveOn.dualₓ'. -/
theorem StrictConcaveOn.dual (hf : StrictConcaveOn 𝕜 s f) : StrictConvexOn 𝕜 s (toDual ∘ f) :=
hf
#align strict_concave_on.dual StrictConcaveOn.dual
@@ -157,56 +133,26 @@ theorem concaveOn_id {s : Set β} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s id :=
#align concave_on_id concaveOn_id
-/
-/- warning: convex_on.subset -> ConvexOn.subset is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-Case conversion may be inaccurate. Consider using '#align convex_on.subset ConvexOn.subsetₓ'. -/
theorem ConvexOn.subset {t : Set E} (hf : ConvexOn 𝕜 t f) (hst : s ⊆ t) (hs : Convex 𝕜 s) :
ConvexOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align convex_on.subset ConvexOn.subset
-/- warning: concave_on.subset -> ConcaveOn.subset is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-Case conversion may be inaccurate. Consider using '#align concave_on.subset ConcaveOn.subsetₓ'. -/
theorem ConcaveOn.subset {t : Set E} (hf : ConcaveOn 𝕜 t f) (hst : s ⊆ t) (hs : Convex 𝕜 s) :
ConcaveOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align concave_on.subset ConcaveOn.subset
-/- warning: strict_convex_on.subset -> StrictConvexOn.subset is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (StrictConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.subset StrictConvexOn.subsetₓ'. -/
theorem StrictConvexOn.subset {t : Set E} (hf : StrictConvexOn 𝕜 t f) (hst : s ⊆ t)
(hs : Convex 𝕜 s) : StrictConvexOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align strict_convex_on.subset StrictConvexOn.subset
-/- warning: strict_concave_on.subset -> StrictConcaveOn.subset is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (StrictConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.subset StrictConcaveOn.subsetₓ'. -/
theorem StrictConcaveOn.subset {t : Set E} (hf : StrictConcaveOn 𝕜 t f) (hst : s ⊆ t)
(hs : Convex 𝕜 s) : StrictConcaveOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align strict_concave_on.subset StrictConcaveOn.subset
-/- warning: convex_on.comp -> ConvexOn.comp is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align convex_on.comp ConvexOn.compₓ'. -/
theorem ConvexOn.comp (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
(hg' : MonotoneOn g (f '' s)) : ConvexOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
@@ -216,12 +162,6 @@ theorem ConvexOn.comp (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
hg.2 (mem_image_of_mem f hx) (mem_image_of_mem f hy) ha hb hab⟩
#align convex_on.comp ConvexOn.comp
-/- warning: concave_on.comp -> ConcaveOn.comp is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align concave_on.comp ConcaveOn.compₓ'. -/
theorem ConcaveOn.comp (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f)
(hg' : MonotoneOn g (f '' s)) : ConcaveOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
@@ -231,34 +171,16 @@ theorem ConcaveOn.comp (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f
hf.2 hx hy ha hb hab⟩
#align concave_on.comp ConcaveOn.comp
-/- warning: convex_on.comp_concave_on -> ConvexOn.comp_concaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align convex_on.comp_concave_on ConvexOn.comp_concaveOnₓ'. -/
theorem ConvexOn.comp_concaveOn (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f)
(hg' : AntitoneOn g (f '' s)) : ConvexOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg'
#align convex_on.comp_concave_on ConvexOn.comp_concaveOn
-/- warning: concave_on.comp_convex_on -> ConcaveOn.comp_convexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align concave_on.comp_convex_on ConcaveOn.comp_convexOnₓ'. -/
theorem ConcaveOn.comp_convexOn (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
(hg' : AntitoneOn g (f '' s)) : ConcaveOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg'
#align concave_on.comp_convex_on ConcaveOn.comp_convexOn
-/- warning: strict_convex_on.comp -> StrictConvexOn.comp is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.comp StrictConvexOn.compₓ'. -/
theorem StrictConvexOn.comp (hg : StrictConvexOn 𝕜 (f '' s) g) (hf : StrictConvexOn 𝕜 s f)
(hg' : StrictMonoOn g (f '' s)) (hf' : s.InjOn f) : StrictConvexOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -268,12 +190,6 @@ theorem StrictConvexOn.comp (hg : StrictConvexOn 𝕜 (f '' s) g) (hf : StrictCo
hg.2 (mem_image_of_mem f hx) (mem_image_of_mem f hy) (mt (hf' hx hy) hxy) ha hb hab⟩
#align strict_convex_on.comp StrictConvexOn.comp
-/- warning: strict_concave_on.comp -> StrictConcaveOn.comp is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.comp StrictConcaveOn.compₓ'. -/
theorem StrictConcaveOn.comp (hg : StrictConcaveOn 𝕜 (f '' s) g) (hf : StrictConcaveOn 𝕜 s f)
(hg' : StrictMonoOn g (f '' s)) (hf' : s.InjOn f) : StrictConcaveOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -283,24 +199,12 @@ theorem StrictConcaveOn.comp (hg : StrictConcaveOn 𝕜 (f '' s) g) (hf : Strict
hf.2 hx hy hxy ha hb hab⟩
#align strict_concave_on.comp StrictConcaveOn.comp
-/- warning: strict_convex_on.comp_strict_concave_on -> StrictConvexOn.comp_strictConcaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.comp_strict_concave_on StrictConvexOn.comp_strictConcaveOnₓ'. -/
theorem StrictConvexOn.comp_strictConcaveOn (hg : StrictConvexOn 𝕜 (f '' s) g)
(hf : StrictConcaveOn 𝕜 s f) (hg' : StrictAntiOn g (f '' s)) (hf' : s.InjOn f) :
StrictConvexOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg' hf'
#align strict_convex_on.comp_strict_concave_on StrictConvexOn.comp_strictConcaveOn
-/- warning: strict_concave_on.comp_strict_convex_on -> StrictConcaveOn.comp_strictConvexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.comp_strict_convex_on StrictConcaveOn.comp_strictConvexOnₓ'. -/
theorem StrictConcaveOn.comp_strictConvexOn (hg : StrictConcaveOn 𝕜 (f '' s) g)
(hf : StrictConvexOn 𝕜 s f) (hg' : StrictAntiOn g (f '' s)) (hf' : s.InjOn f) :
StrictConcaveOn 𝕜 s (g ∘ f) :=
@@ -313,12 +217,6 @@ section DistribMulAction
variable [SMul 𝕜 E] [DistribMulAction 𝕜 β] {s : Set E} {f g : E → β}
-/- warning: convex_on.add -> ConvexOn.add is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s g) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s g) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)))))) f g))
-Case conversion may be inaccurate. Consider using '#align convex_on.add ConvexOn.addₓ'. -/
theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
@@ -328,12 +226,6 @@ theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
⟩
#align convex_on.add ConvexOn.add
-/- warning: concave_on.add -> ConcaveOn.add is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s g) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s g) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)))))) f g))
-Case conversion may be inaccurate. Consider using '#align concave_on.add ConcaveOn.addₓ'. -/
theorem ConcaveOn.add (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f + g) :=
hf.dual.add hg
#align concave_on.add ConcaveOn.add
@@ -344,44 +236,20 @@ section Module
variable [SMul 𝕜 E] [Module 𝕜 β] {s : Set E} {f : E → β}
-/- warning: convex_on_const -> convexOn_const is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (fun (x : E) => c))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (fun (x : E) => c))
-Case conversion may be inaccurate. Consider using '#align convex_on_const convexOn_constₓ'. -/
theorem convexOn_const (c : β) (hs : Convex 𝕜 s) : ConvexOn 𝕜 s fun x : E => c :=
⟨hs, fun x y _ _ a b _ _ hab => (Convex.combo_self hab c).ge⟩
#align convex_on_const convexOn_const
-/- warning: concave_on_const -> concaveOn_const is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (fun (x : E) => c))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (fun (x : E) => c))
-Case conversion may be inaccurate. Consider using '#align concave_on_const concaveOn_constₓ'. -/
theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun x : E => c :=
@convexOn_const _ _ βᵒᵈ _ _ _ _ _ _ c hs
#align concave_on_const concaveOn_const
-/- warning: convex_on_of_convex_epigraph -> convexOn_of_convex_epigraph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))))) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
-Case conversion may be inaccurate. Consider using '#align convex_on_of_convex_epigraph convexOn_of_convex_epigraphₓ'. -/
theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 }) :
ConvexOn 𝕜 s f :=
⟨fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).1,
fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).2⟩
#align convex_on_of_convex_epigraph convexOn_of_convex_epigraph
-/- warning: concave_on_of_convex_hypograph -> concaveOn_of_convex_hypograph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))))) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
-Case conversion may be inaccurate. Consider using '#align concave_on_of_convex_hypograph concaveOn_of_convex_hypographₓ'. -/
theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 }) :
ConcaveOn 𝕜 s f :=
@convexOn_of_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ h
@@ -393,12 +261,6 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
-/- warning: convex_on.convex_le -> ConvexOn.convex_le is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f x) r))))
-Case conversion may be inaccurate. Consider using '#align convex_on.convex_le ConvexOn.convex_leₓ'. -/
theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | f x ≤ r }) :=
fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha hb hab,
@@ -410,22 +272,10 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_le ConvexOn.convex_le
-/- warning: concave_on.convex_ge -> ConcaveOn.convex_ge is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) r (f x)))))
-Case conversion may be inaccurate. Consider using '#align concave_on.convex_ge ConcaveOn.convex_geₓ'. -/
theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r ≤ f x }) :=
hf.dual.convex_le r
#align concave_on.convex_ge ConcaveOn.convex_ge
-/- warning: convex_on.convex_epigraph -> ConvexOn.convex_epigraph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
-Case conversion may be inaccurate. Consider using '#align convex_on.convex_epigraph ConvexOn.convex_epigraphₓ'. -/
theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 } :=
by
@@ -437,34 +287,16 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
-/- warning: concave_on.convex_hypograph -> ConcaveOn.convex_hypograph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
-Case conversion may be inaccurate. Consider using '#align concave_on.convex_hypograph ConcaveOn.convex_hypographₓ'. -/
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
hf.dual.convex_epigraph
#align concave_on.convex_hypograph ConcaveOn.convex_hypograph
-/- warning: convex_on_iff_convex_epigraph -> convexOn_iff_convex_epigraph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
-Case conversion may be inaccurate. Consider using '#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraphₓ'. -/
theorem convexOn_iff_convex_epigraph :
ConvexOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 } :=
⟨ConvexOn.convex_epigraph, convexOn_of_convex_epigraph⟩
#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraph
-/- warning: concave_on_iff_convex_hypograph -> concaveOn_iff_convex_hypograph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
-Case conversion may be inaccurate. Consider using '#align concave_on_iff_convex_hypograph concaveOn_iff_convex_hypographₓ'. -/
theorem concaveOn_iff_convex_hypograph :
ConcaveOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
@convexOn_iff_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ f
@@ -476,12 +308,6 @@ section Module
variable [Module 𝕜 E] [SMul 𝕜 β] {s : Set E} {f : E → β}
-/- warning: convex_on.translate_right -> ConvexOn.translate_right is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
-Case conversion may be inaccurate. Consider using '#align convex_on.translate_right ConvexOn.translate_rightₓ'. -/
/-- Right translation preserves convexity. -/
theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
ConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
@@ -493,36 +319,18 @@ theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
⟩
#align convex_on.translate_right ConvexOn.translate_right
-/- warning: concave_on.translate_right -> ConcaveOn.translate_right is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
-Case conversion may be inaccurate. Consider using '#align concave_on.translate_right ConcaveOn.translate_rightₓ'. -/
/-- Right translation preserves concavity. -/
theorem ConcaveOn.translate_right (hf : ConcaveOn 𝕜 s f) (c : E) :
ConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
hf.dual.translate_right _
#align concave_on.translate_right ConcaveOn.translate_right
-/- warning: convex_on.translate_left -> ConvexOn.translate_left is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
-Case conversion may be inaccurate. Consider using '#align convex_on.translate_left ConvexOn.translate_leftₓ'. -/
/-- Left translation preserves convexity. -/
theorem ConvexOn.translate_left (hf : ConvexOn 𝕜 s f) (c : E) :
ConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align convex_on.translate_left ConvexOn.translate_left
-/- warning: concave_on.translate_left -> ConcaveOn.translate_left is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
-Case conversion may be inaccurate. Consider using '#align concave_on.translate_left ConcaveOn.translate_leftₓ'. -/
/-- Left translation preserves concavity. -/
theorem ConcaveOn.translate_left (hf : ConcaveOn 𝕜 s f) (c : E) :
ConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) :=
@@ -535,9 +343,6 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β]
-/- warning: convex_on_iff_forall_pos -> convexOn_iff_forall_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on_iff_forall_pos convexOn_iff_forall_posₓ'. -/
theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -557,9 +362,6 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
-/- warning: concave_on_iff_forall_pos -> concaveOn_iff_forall_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on_iff_forall_pos concaveOn_iff_forall_posₓ'. -/
theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -571,9 +373,6 @@ theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
@convexOn_iff_forall_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_forall_pos concaveOn_iff_forall_pos
-/- warning: convex_on_iff_pairwise_pos -> convexOn_iff_pairwise_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_posₓ'. -/
theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -589,9 +388,6 @@ theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
exact h hx hy hxy ha hb hab
#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_pos
-/- warning: concave_on_iff_pairwise_pos -> concaveOn_iff_pairwise_pos is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_posₓ'. -/
theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -600,46 +396,22 @@ theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
@convexOn_iff_pairwise_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_pos
-/- warning: linear_map.convex_on -> LinearMap.convexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
-Case conversion may be inaccurate. Consider using '#align linear_map.convex_on LinearMap.convexOnₓ'. -/
/-- A linear map is convex. -/
theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s f :=
⟨hs, fun _ _ _ _ _ _ _ _ _ => by rw [f.map_add, f.map_smul, f.map_smul]⟩
#align linear_map.convex_on LinearMap.convexOn
-/- warning: linear_map.concave_on -> LinearMap.concaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
-Case conversion may be inaccurate. Consider using '#align linear_map.concave_on LinearMap.concaveOnₓ'. -/
/-- A linear map is concave. -/
theorem LinearMap.concaveOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s f :=
⟨hs, fun _ _ _ _ _ _ _ _ _ => by rw [f.map_add, f.map_smul, f.map_smul]⟩
#align linear_map.concave_on LinearMap.concaveOn
-/- warning: strict_convex_on.convex_on -> StrictConvexOn.convexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, (StrictConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.convex_on StrictConvexOn.convexOnₓ'. -/
theorem StrictConvexOn.convexOn {s : Set E} {f : E → β} (hf : StrictConvexOn 𝕜 s f) :
ConvexOn 𝕜 s f :=
convexOn_iff_pairwise_pos.mpr
⟨hf.1, fun x hx y hy hxy a b ha hb hab => (hf.2 hx hy hxy ha hb hab).le⟩
#align strict_convex_on.convex_on StrictConvexOn.convexOn
-/- warning: strict_concave_on.concave_on -> StrictConcaveOn.concaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, (StrictConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.concave_on StrictConcaveOn.concaveOnₓ'. -/
theorem StrictConcaveOn.concaveOn {s : Set E} {f : E → β} (hf : StrictConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s f :=
hf.dual.ConvexOn
@@ -649,12 +421,6 @@ section OrderedSMul
variable [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
-/- warning: strict_convex_on.convex_lt -> StrictConvexOn.convex_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f x) r))))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.convex_lt StrictConvexOn.convex_ltₓ'. -/
theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
Convex 𝕜 ({ x ∈ s | f x < r }) :=
convex_iff_pairwise_pos.2 fun x hx y hy hxy a b ha hb hab =>
@@ -667,12 +433,6 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
-/- warning: strict_concave_on.convex_gt -> StrictConcaveOn.convex_gt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) r (f x)))))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.convex_gt StrictConcaveOn.convex_gtₓ'. -/
theorem StrictConcaveOn.convex_gt (hf : StrictConcaveOn 𝕜 s f) (r : β) :
Convex 𝕜 ({ x ∈ s | r < f x }) :=
hf.dual.convex_lt r
@@ -684,9 +444,6 @@ section LinearOrder
variable [LinearOrder E] {s : Set E} {f : E → β}
-/- warning: linear_order.convex_on_of_lt -> LinearOrder.convexOn_of_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is convex, it suffices to
verify the inequality `f (a • x + b • y) ≤ a • f x + b • f y` only for `x < y` and positive `a`,
@@ -709,9 +466,6 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
-/- warning: linear_order.concave_on_of_lt -> LinearOrder.concaveOn_of_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is concave it suffices to
verify the inequality `a • f x + b • f y ≤ f (a • x + b • y)` for `x < y` and positive `a`, `b`. The
@@ -728,9 +482,6 @@ theorem LinearOrder.concaveOn_of_lt (hs : Convex 𝕜 s)
@LinearOrder.convexOn_of_lt _ _ βᵒᵈ _ _ _ _ _ _ s f hs hf
#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_lt
-/- warning: linear_order.strict_convex_on_of_lt -> LinearOrder.strictConvexOn_of_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly convex, it suffices
to verify the inequality `f (a • x + b • y) < a • f x + b • f y` for `x < y` and positive `a`, `b`.
@@ -752,9 +503,6 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
-/- warning: linear_order.strict_concave_on_of_lt -> LinearOrder.strictConcaveOn_of_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_order.strict_concave_on_of_lt LinearOrder.strictConcaveOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly concave it suffices
to verify the inequality `a • f x + b • f y < f (a • x + b • y)` for `x < y` and positive `a`, `b`.
@@ -779,9 +527,6 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
-/- warning: convex_on.comp_linear_map -> ConvexOn.comp_linearMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.comp_linear_map ConvexOn.comp_linearMapₓ'. -/
/-- If `g` is convex on `s`, so is `(f ∘ g)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
ConvexOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -792,9 +537,6 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
⟩
#align convex_on.comp_linear_map ConvexOn.comp_linearMap
-/- warning: concave_on.comp_linear_map -> ConcaveOn.comp_linearMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.comp_linear_map ConcaveOn.comp_linearMapₓ'. -/
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConcaveOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConcaveOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
ConcaveOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -813,12 +555,6 @@ section DistribMulAction
variable [SMul 𝕜 E] [DistribMulAction 𝕜 β] {s : Set E} {f g : E → β}
-/- warning: strict_convex_on.add_convex_on -> StrictConvexOn.add_convexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.add_convex_on StrictConvexOn.add_convexOnₓ'. -/
theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -829,23 +565,11 @@ theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexO
⟩
#align strict_convex_on.add_convex_on StrictConvexOn.add_convexOn
-/- warning: convex_on.add_strict_convex_on -> ConvexOn.add_strictConvexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
-Case conversion may be inaccurate. Consider using '#align convex_on.add_strict_convex_on ConvexOn.add_strictConvexOnₓ'. -/
theorem ConvexOn.add_strictConvexOn (hf : ConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
add_comm g f ▸ hg.add_convexOn hf
#align convex_on.add_strict_convex_on ConvexOn.add_strictConvexOn
-/- warning: strict_convex_on.add -> StrictConvexOn.add is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.add StrictConvexOn.addₓ'. -/
theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -856,34 +580,16 @@ theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
⟩
#align strict_convex_on.add StrictConvexOn.add
-/- warning: strict_concave_on.add_concave_on -> StrictConcaveOn.add_concaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.add_concave_on StrictConcaveOn.add_concaveOnₓ'. -/
theorem StrictConcaveOn.add_concaveOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add_convexOn hg.dual
#align strict_concave_on.add_concave_on StrictConcaveOn.add_concaveOn
-/- warning: concave_on.add_strict_concave_on -> ConcaveOn.add_strictConcaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
-Case conversion may be inaccurate. Consider using '#align concave_on.add_strict_concave_on ConcaveOn.add_strictConcaveOnₓ'. -/
theorem ConcaveOn.add_strictConcaveOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add_strictConvexOn hg.dual
#align concave_on.add_strict_concave_on ConcaveOn.add_strictConcaveOn
-/- warning: strict_concave_on.add -> StrictConcaveOn.add is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.add StrictConcaveOn.addₓ'. -/
theorem StrictConcaveOn.add (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add hg
@@ -895,12 +601,6 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
-/- warning: convex_on.convex_lt -> ConvexOn.convex_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f x) r) s))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f x) r))))
-Case conversion may be inaccurate. Consider using '#align convex_on.convex_lt ConvexOn.convex_ltₓ'. -/
theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | f x < r }) :=
convex_iff_forall_pos.2 fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
@@ -913,19 +613,10 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_lt ConvexOn.convex_lt
-/- warning: concave_on.convex_gt -> ConcaveOn.convex_gt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) r (f x)) s))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) r (f x)))))
-Case conversion may be inaccurate. Consider using '#align concave_on.convex_gt ConcaveOn.convex_gtₓ'. -/
theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r < f x }) :=
hf.dual.convex_lt r
#align concave_on.convex_gt ConcaveOn.convex_gt
-/- warning: convex_on.open_segment_subset_strict_epigraph -> ConvexOn.openSegment_subset_strict_epigraph is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraphₓ'. -/
theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ f p.1 < p.2) (hq : q.1 ∈ s ∧ f q.1 ≤ q.2) :
openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
@@ -939,27 +630,18 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
-/- warning: concave_on.open_segment_subset_strict_hypograph -> ConcaveOn.openSegment_subset_strict_hypograph is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypographₓ'. -/
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ p.2 < f p.1) (hq : q.1 ∈ s ∧ q.2 ≤ f q.1) :
openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
hf.dual.openSegment_subset_strict_epigraph p q hp hq
#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypograph
-/- warning: convex_on.convex_strict_epigraph -> ConvexOn.convex_strict_epigraph is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraphₓ'. -/
theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
convex_iff_openSegment_subset.mpr fun p hp q hq =>
hf.openSegment_subset_strict_epigraph p q hp ⟨hq.1, hq.2.le⟩
#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraph
-/- warning: concave_on.convex_strict_hypograph -> ConcaveOn.convex_strict_hypograph is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.convex_strict_hypograph ConcaveOn.convex_strict_hypographₓ'. -/
theorem ConcaveOn.convex_strict_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
hf.dual.convex_strict_epigraph
@@ -974,12 +656,6 @@ section LinearOrderedAddCommMonoid
variable [LinearOrderedAddCommMonoid β] [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E}
{f g : E → β}
-/- warning: convex_on.sup -> ConvexOn.sup is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Sup.sup.{max u2 u3} (E -> β) (Pi.hasSup.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toHasSup.{u3} β (Lattice.toSemilatticeSup.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Sup.sup.{max u2 u1} (E -> β) (Pi.instSupForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)))))) f g))
-Case conversion may be inaccurate. Consider using '#align convex_on.sup ConvexOn.supₓ'. -/
/-- The pointwise maximum of convex functions is convex. -/
theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexOn 𝕜 s (f ⊔ g) :=
by
@@ -998,23 +674,11 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
#align convex_on.sup ConvexOn.sup
-/- warning: concave_on.inf -> ConcaveOn.inf is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Inf.inf.{max u2 u3} (E -> β) (Pi.hasInf.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeInf.toHasInf.{u3} β (Lattice.toSemilatticeInf.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Inf.inf.{max u2 u1} (E -> β) (Pi.instInfForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => Lattice.toInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4))))) f g))
-Case conversion may be inaccurate. Consider using '#align concave_on.inf ConcaveOn.infₓ'. -/
/-- The pointwise minimum of concave functions is concave. -/
theorem ConcaveOn.inf (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
#align concave_on.inf ConcaveOn.inf
-/- warning: strict_convex_on.sup -> StrictConvexOn.sup is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Sup.sup.{max u2 u3} (E -> β) (Pi.hasSup.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toHasSup.{u3} β (Lattice.toSemilatticeSup.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Sup.sup.{max u2 u1} (E -> β) (Pi.instSupForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)))))) f g))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.sup StrictConvexOn.supₓ'. -/
/-- The pointwise maximum of strictly convex functions is strictly convex. -/
theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f ⊔ g) :=
@@ -1034,21 +698,12 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
)⟩
#align strict_convex_on.sup StrictConvexOn.sup
-/- warning: strict_concave_on.inf -> StrictConcaveOn.inf is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Inf.inf.{max u2 u3} (E -> β) (Pi.hasInf.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeInf.toHasInf.{u3} β (Lattice.toSemilatticeInf.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Inf.inf.{max u2 u1} (E -> β) (Pi.instInfForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => Lattice.toInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4))))) f g))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.inf StrictConcaveOn.infₓ'. -/
/-- The pointwise minimum of strictly concave functions is strictly concave. -/
theorem StrictConcaveOn.inf (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
#align strict_concave_on.inf StrictConcaveOn.inf
-/- warning: convex_on.le_on_segment' -> ConvexOn.le_on_segment' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment' ConvexOn.le_on_segment'ₓ'. -/
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s) {a b : 𝕜}
(ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : f (a • x + b • y) ≤ max (f x) (f y) :=
@@ -1061,21 +716,12 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
-/- warning: concave_on.ge_on_segment' -> ConcaveOn.ge_on_segment' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'ₓ'. -/
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : min (f x) (f y) ≤ f (a • x + b • y) :=
hf.dual.le_on_segment' hx hy ha hb hab
#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'
-/- warning: convex_on.le_on_segment -> ConvexOn.le_on_segment is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (segment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f z) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y))))
-Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment ConvexOn.le_on_segmentₓ'. -/
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : f z ≤ max (f x) (f y) :=
@@ -1083,21 +729,12 @@ theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈
hz ▸ hf.le_on_segment' hx hy ha hb hab
#align convex_on.le_on_segment ConvexOn.le_on_segment
-/- warning: concave_on.ge_on_segment -> ConcaveOn.ge_on_segment is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (segment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f z)))
-Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment ConcaveOn.ge_on_segmentₓ'. -/
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : min (f x) (f y) ≤ f z :=
hf.dual.le_on_segment hx hy hz
#align concave_on.ge_on_segment ConcaveOn.ge_on_segment
-/- warning: strict_convex_on.lt_on_open_segment' -> StrictConvexOn.lt_on_open_segment' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'ₓ'. -/
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -1112,9 +749,6 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
-/- warning: strict_concave_on.lt_on_open_segment' -> StrictConcaveOn.lt_on_open_segment' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'ₓ'. -/
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -1123,12 +757,6 @@ theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y
hf.dual.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'
-/- warning: strict_convex_on.lt_on_open_segment -> StrictConvexOn.lt_on_openSegment is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f z) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y))))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegmentₓ'. -/
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
@@ -1137,12 +765,6 @@ theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z :
hz ▸ hf.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegment
-/- warning: strict_concave_on.lt_on_open_segment -> StrictConcaveOn.lt_on_openSegment is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f z)))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment StrictConcaveOn.lt_on_openSegmentₓ'. -/
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_openSegment (hf : StrictConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
@@ -1160,9 +782,6 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
-/- warning: convex_on.le_left_of_right_le' -> ConvexOn.le_left_of_right_le' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'ₓ'. -/
theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f y ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f x :=
@@ -1176,18 +795,12 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
-/- warning: concave_on.left_le_of_le_right' -> ConcaveOn.left_le_of_le_right' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'ₓ'. -/
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f (a • x + b • y) ≤ f y) :
f x ≤ f (a • x + b • y) :=
hf.dual.le_left_of_right_le' hx hy ha hb hab hfy
#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'
-/- warning: convex_on.le_right_of_left_le' -> ConvexOn.le_right_of_left_le' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'ₓ'. -/
theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f y := by
@@ -1195,21 +808,12 @@ theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
exact hf.le_left_of_right_le' hy hx hb ha hab hfx
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
-/- warning: concave_on.right_le_of_le_left' -> ConcaveOn.right_le_of_le_left' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'ₓ'. -/
theorem ConcaveOn.right_le_of_le_left' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) ≤ f x) :
f y ≤ f (a • x + b • y) :=
hf.dual.le_right_of_left_le' hx hy ha hb hab hfx
#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'
-/- warning: convex_on.le_left_of_right_le -> ConvexOn.le_left_of_right_le is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)))
-Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_leₓ'. -/
theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y ≤ f z) : f z ≤ f x :=
by
@@ -1217,23 +821,11 @@ theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.le_left_of_right_le' hx hy ha hb.le hab hyz
#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_le
-/- warning: concave_on.left_le_of_le_right -> ConcaveOn.left_le_of_le_right is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)))
-Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right ConcaveOn.left_le_of_le_rightₓ'. -/
theorem ConcaveOn.left_le_of_le_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z ≤ f y) : f x ≤ f z :=
hf.dual.le_left_of_right_le hx hy hz hyz
#align concave_on.left_le_of_le_right ConcaveOn.left_le_of_le_right
-/- warning: convex_on.le_right_of_left_le -> ConvexOn.le_right_of_left_le is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)))
-Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_leₓ'. -/
theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x ≤ f z) : f z ≤ f y :=
by
@@ -1241,12 +833,6 @@ theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.le_right_of_left_le' hx hy ha.le hb hab hxz
#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_le
-/- warning: concave_on.right_le_of_le_left -> ConcaveOn.right_le_of_le_left is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)))
-Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left ConcaveOn.right_le_of_le_leftₓ'. -/
theorem ConcaveOn.right_le_of_le_left (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z ≤ f x) : f y ≤ f z :=
hf.dual.le_right_of_left_le hx hy hz hxz
@@ -1258,9 +844,6 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
-/- warning: convex_on.lt_left_of_right_lt' -> ConvexOn.lt_left_of_right_lt' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'ₓ'. -/
/- The following lemmas don't require `module 𝕜 E` if you add the hypothesis `x ≠ y`. At the time of
the writing, we decided the resulting lemmas wouldn't be useful. Feel free to reintroduce them. -/
theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -1276,18 +859,12 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
-/- warning: concave_on.left_lt_of_lt_right' -> ConcaveOn.left_lt_of_lt_right' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'ₓ'. -/
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f (a • x + b • y) < f y) :
f x < f (a • x + b • y) :=
hf.dual.lt_left_of_right_lt' hx hy ha hb hab hfy
#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'
-/- warning: convex_on.lt_right_of_left_lt' -> ConvexOn.lt_right_of_left_lt' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'ₓ'. -/
theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x < f (a • x + b • y)) :
f (a • x + b • y) < f y := by
@@ -1295,18 +872,12 @@ theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
exact hf.lt_left_of_right_lt' hy hx hb ha hab hfx
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
-/- warning: concave_on.lt_right_of_left_lt' -> ConcaveOn.lt_right_of_left_lt' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'ₓ'. -/
theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) < f x) :
f y < f (a • x + b • y) :=
hf.dual.lt_right_of_left_lt' hx hy ha hb hab hfx
#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'
-/- warning: convex_on.lt_left_of_right_lt -> ConvexOn.lt_left_of_right_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_ltₓ'. -/
theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y < f z) : f z < f x :=
by
@@ -1314,17 +885,11 @@ theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.lt_left_of_right_lt' hx hy ha hb hab hyz
#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_lt
-/- warning: concave_on.left_lt_of_lt_right -> ConcaveOn.left_lt_of_lt_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_rightₓ'. -/
theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z < f y) : f x < f z :=
hf.dual.lt_left_of_right_lt hx hy hz hyz
#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_right
-/- warning: convex_on.lt_right_of_left_lt -> ConvexOn.lt_right_of_left_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_ltₓ'. -/
theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x < f z) : f z < f y :=
by
@@ -1332,9 +897,6 @@ theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.lt_right_of_left_lt' hx hy ha hb hab hxz
#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_lt
-/- warning: concave_on.lt_right_of_left_lt -> ConcaveOn.lt_right_of_left_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt ConcaveOn.lt_right_of_left_ltₓ'. -/
theorem ConcaveOn.lt_right_of_left_lt (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z < f x) : f y < f z :=
hf.dual.lt_right_of_left_lt hx hy hz hxz
@@ -1348,12 +910,6 @@ section OrderedAddCommGroup
variable [OrderedAddCommGroup β] [SMul 𝕜 E] [Module 𝕜 β] {s : Set E} {f g : E → β}
-/- warning: neg_convex_on_iff -> neg_convexOn_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
-Case conversion may be inaccurate. Consider using '#align neg_convex_on_iff neg_convexOn_iffₓ'. -/
/-- A function `-f` is convex iff `f` is concave. -/
@[simp]
theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
@@ -1370,24 +926,12 @@ theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
exact h hx hy ha hb hab
#align neg_convex_on_iff neg_convexOn_iff
-/- warning: neg_concave_on_iff -> neg_concaveOn_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
-Case conversion may be inaccurate. Consider using '#align neg_concave_on_iff neg_concaveOn_iffₓ'. -/
/-- A function `-f` is concave iff `f` is convex. -/
@[simp]
theorem neg_concaveOn_iff : ConcaveOn 𝕜 s (-f) ↔ ConvexOn 𝕜 s f := by
rw [← neg_convexOn_iff, neg_neg f]
#align neg_concave_on_iff neg_concaveOn_iff
-/- warning: neg_strict_convex_on_iff -> neg_strictConvexOn_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
-Case conversion may be inaccurate. Consider using '#align neg_strict_convex_on_iff neg_strictConvexOn_iffₓ'. -/
/-- A function `-f` is strictly convex iff `f` is strictly concave. -/
@[simp]
theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn 𝕜 s f :=
@@ -1404,111 +948,57 @@ theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn
exact h hx hy hxy ha hb hab
#align neg_strict_convex_on_iff neg_strictConvexOn_iff
-/- warning: neg_strict_concave_on_iff -> neg_strictConcaveOn_iff is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
-Case conversion may be inaccurate. Consider using '#align neg_strict_concave_on_iff neg_strictConcaveOn_iffₓ'. -/
/-- A function `-f` is strictly concave iff `f` is strictly convex. -/
@[simp]
theorem neg_strictConcaveOn_iff : StrictConcaveOn 𝕜 s (-f) ↔ StrictConvexOn 𝕜 s f := by
rw [← neg_strictConvexOn_iff, neg_neg f]
#align neg_strict_concave_on_iff neg_strictConcaveOn_iff
-/- warning: concave_on.neg -> ConcaveOn.neg is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
-Case conversion may be inaccurate. Consider using '#align concave_on.neg ConcaveOn.negₓ'. -/
alias neg_convexOn_iff ↔ _ ConcaveOn.neg
#align concave_on.neg ConcaveOn.neg
-/- warning: convex_on.neg -> ConvexOn.neg is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
-Case conversion may be inaccurate. Consider using '#align convex_on.neg ConvexOn.negₓ'. -/
alias neg_concaveOn_iff ↔ _ ConvexOn.neg
#align convex_on.neg ConvexOn.neg
-/- warning: strict_concave_on.neg -> StrictConcaveOn.neg is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.neg StrictConcaveOn.negₓ'. -/
alias neg_strictConvexOn_iff ↔ _ StrictConcaveOn.neg
#align strict_concave_on.neg StrictConcaveOn.neg
-/- warning: strict_convex_on.neg -> StrictConvexOn.neg is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.neg StrictConvexOn.negₓ'. -/
alias neg_strictConcaveOn_iff ↔ _ StrictConvexOn.neg
#align strict_convex_on.neg StrictConvexOn.neg
-/- warning: convex_on.sub -> ConvexOn.sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.sub ConvexOn.subₓ'. -/
theorem ConvexOn.sub (hf : ConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align convex_on.sub ConvexOn.sub
-/- warning: concave_on.sub -> ConcaveOn.sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.sub ConcaveOn.subₓ'. -/
theorem ConcaveOn.sub (hf : ConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align concave_on.sub ConcaveOn.sub
-/- warning: strict_convex_on.sub -> StrictConvexOn.sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.sub StrictConvexOn.subₓ'. -/
theorem StrictConvexOn.sub (hf : StrictConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_convex_on.sub StrictConvexOn.sub
-/- warning: strict_concave_on.sub -> StrictConcaveOn.sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.sub StrictConcaveOn.subₓ'. -/
theorem StrictConcaveOn.sub (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_concave_on.sub StrictConcaveOn.sub
-/- warning: convex_on.sub_strict_concave_on -> ConvexOn.sub_strictConcaveOn is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOnₓ'. -/
theorem ConvexOn.sub_strictConcaveOn (hf : ConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConvexOn hg.neg
#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOn
-/- warning: concave_on.sub_strict_convex_on -> ConcaveOn.sub_strictConvexOn is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOnₓ'. -/
theorem ConcaveOn.sub_strictConvexOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConcaveOn hg.neg
#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOn
-/- warning: strict_convex_on.sub_concave_on -> StrictConvexOn.sub_concaveOn is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOnₓ'. -/
theorem StrictConvexOn.sub_concaveOn (hf : StrictConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_convexOn hg.neg
#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOn
-/- warning: strict_concave_on.sub_convex_on -> StrictConcaveOn.sub_convexOn is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.sub_convex_on StrictConcaveOn.sub_convexOnₓ'. -/
theorem StrictConcaveOn.sub_convexOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_concaveOn hg.neg
@@ -1523,12 +1013,6 @@ section AddCancelCommMonoid
variable [AddCancelCommMonoid E] [OrderedAddCommMonoid β] [Module 𝕜 E] [SMul 𝕜 β] {s : Set E}
{f : E → β}
-/- warning: strict_convex_on.translate_right -> StrictConvexOn.translate_right is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.translate_right StrictConvexOn.translate_rightₓ'. -/
/-- Right translation preserves strict convexity. -/
theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
StrictConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
@@ -1540,36 +1024,18 @@ theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
⟩
#align strict_convex_on.translate_right StrictConvexOn.translate_right
-/- warning: strict_concave_on.translate_right -> StrictConcaveOn.translate_right is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.translate_right StrictConcaveOn.translate_rightₓ'. -/
/-- Right translation preserves strict concavity. -/
theorem StrictConcaveOn.translate_right (hf : StrictConcaveOn 𝕜 s f) (c : E) :
StrictConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
hf.dual.translate_right _
#align strict_concave_on.translate_right StrictConcaveOn.translate_right
-/- warning: strict_convex_on.translate_left -> StrictConvexOn.translate_left is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
-Case conversion may be inaccurate. Consider using '#align strict_convex_on.translate_left StrictConvexOn.translate_leftₓ'. -/
/-- Left translation preserves strict convexity. -/
theorem StrictConvexOn.translate_left (hf : StrictConvexOn 𝕜 s f) (c : E) :
StrictConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align strict_convex_on.translate_left StrictConvexOn.translate_left
-/- warning: strict_concave_on.translate_left -> StrictConcaveOn.translate_left is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
-Case conversion may be inaccurate. Consider using '#align strict_concave_on.translate_left StrictConcaveOn.translate_leftₓ'. -/
/-- Left translation preserves strict concavity. -/
theorem StrictConcaveOn.translate_left (hf : StrictConcaveOn 𝕜 s f) (c : E) :
StrictConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
@@ -1592,12 +1058,6 @@ section Module
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
-/- warning: convex_on.smul -> ConvexOn.smul is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3)] [_inst_6 : OrderedSMul.{u3, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))))) c) -> (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s (fun (x : E) => HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))))) c (f x)))
-Case conversion may be inaccurate. Consider using '#align convex_on.smul ConvexOn.smulₓ'. -/
theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : ConvexOn 𝕜 s fun x => c • f x :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
@@ -1607,12 +1067,6 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
⟩
#align convex_on.smul ConvexOn.smul
-/- warning: concave_on.smul -> ConcaveOn.smul is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3)] [_inst_6 : OrderedSMul.{u3, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))))) c) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s (fun (x : E) => HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))))) c (f x)))
-Case conversion may be inaccurate. Consider using '#align concave_on.smul ConcaveOn.smulₓ'. -/
theorem ConcaveOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s fun x => c • f x :=
hf.dual.smul hc
@@ -1636,9 +1090,6 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
-/- warning: convex_on.comp_affine_map -> ConvexOn.comp_affineMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.comp_affine_map ConvexOn.comp_affineMapₓ'. -/
/-- If a function is convex on `s`, it remains convex when precomposed by an affine map. -/
theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConvexOn 𝕜 s f) :
ConvexOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -1650,9 +1101,6 @@ theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F
⟩
#align convex_on.comp_affine_map ConvexOn.comp_affineMap
-/- warning: concave_on.comp_affine_map -> ConcaveOn.comp_affineMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.comp_affine_map ConcaveOn.comp_affineMapₓ'. -/
/-- If a function is concave on `s`, it remains concave when precomposed by an affine map. -/
theorem ConcaveOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -1677,9 +1125,6 @@ section SMul
variable [SMul 𝕜 E] [SMul 𝕜 β] {s : Set E}
-/- warning: convex_on_iff_div -> convexOn_iff_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on_iff_div convexOn_iff_divₓ'. -/
theorem convexOn_iff_div {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1703,9 +1148,6 @@ theorem convexOn_iff_div {f : E → β} :
simpa [hab, zero_lt_one] using h hx hy ha hb⟩
#align convex_on_iff_div convexOn_iff_div
-/- warning: concave_on_iff_div -> concaveOn_iff_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on_iff_div concaveOn_iff_divₓ'. -/
theorem concaveOn_iff_div {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1722,9 +1164,6 @@ theorem concaveOn_iff_div {f : E → β} :
@convexOn_iff_div _ _ βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_div concaveOn_iff_div
-/- warning: strict_convex_on_iff_div -> strictConvexOn_iff_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_div strictConvexOn_iff_divₓ'. -/
theorem strictConvexOn_iff_div {f : E → β} :
StrictConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1749,9 +1188,6 @@ theorem strictConvexOn_iff_div {f : E → β} :
simpa [hab, zero_lt_one] using h hx hy hxy ha hb⟩
#align strict_convex_on_iff_div strictConvexOn_iff_div
-/- warning: strict_concave_on_iff_div -> strictConcaveOn_iff_div is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_div strictConcaveOn_iff_divₓ'. -/
theorem strictConcaveOn_iff_div {f : E → β} :
StrictConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1779,35 +1215,23 @@ section
variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module 𝕜 β] [OrderedSMul 𝕜 β]
{x y z : 𝕜} {s : Set 𝕜} {f : 𝕜 → β}
-/- warning: convex_on.le_right_of_left_le'' -> ConvexOn.le_right_of_left_le'' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''ₓ'. -/
theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y)
(hyz : y ≤ z) (h : f x ≤ f y) : f y ≤ f z :=
hyz.eq_or_lt.elim (fun hyz => (congr_arg f hyz).le) fun hyz =>
hf.le_right_of_left_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''
-/- warning: convex_on.le_left_of_right_le'' -> ConvexOn.le_left_of_right_le'' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''ₓ'. -/
theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x ≤ y)
(hyz : y < z) (h : f z ≤ f y) : f y ≤ f x :=
hxy.eq_or_lt.elim (fun hxy => (congr_arg f hxy).ge) fun hxy =>
hf.le_left_of_right_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''
-/- warning: concave_on.right_le_of_le_left'' -> ConcaveOn.right_le_of_le_left'' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''ₓ'. -/
theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x < y) (hyz : y ≤ z) (h : f y ≤ f x) : f z ≤ f y :=
hf.dual.le_right_of_left_le'' hx hz hxy hyz h
#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''
-/- warning: concave_on.left_le_of_le_right'' -> ConcaveOn.left_le_of_le_right'' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right'' ConcaveOn.left_le_of_le_right''ₓ'. -/
theorem ConcaveOn.left_le_of_le_right'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x ≤ y) (hyz : y < z) (h : f y ≤ f z) : f x ≤ f y :=
hf.dual.le_left_of_right_le'' hx hz hxy hyz h
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -147,17 +147,13 @@ theorem StrictConcaveOn.dual (hf : StrictConcaveOn 𝕜 s f) : StrictConvexOn
#print convexOn_id /-
theorem convexOn_id {s : Set β} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s id :=
- ⟨hs, by
- intros
- rfl⟩
+ ⟨hs, by intros ; rfl⟩
#align convex_on_id convexOn_id
-/
#print concaveOn_id /-
theorem concaveOn_id {s : Set β} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s id :=
- ⟨hs, by
- intros
- rfl⟩
+ ⟨hs, by intros ; rfl⟩
#align concave_on_id concaveOn_id
-/
@@ -555,13 +551,9 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
and_congr_right'
⟨fun h x hx y hy a b ha hb hab => h hx hy ha.le hb.le hab, fun h x hx y hy a b ha hb hab => _⟩
obtain rfl | ha' := ha.eq_or_lt
- · rw [zero_add] at hab
- subst b
- simp_rw [zero_smul, zero_add, one_smul]
+ · rw [zero_add] at hab; subst b; simp_rw [zero_smul, zero_add, one_smul]
obtain rfl | hb' := hb.eq_or_lt
- · rw [add_zero] at hab
- subst a
- simp_rw [zero_smul, add_zero, one_smul]
+ · rw [add_zero] at hab; subst a; simp_rw [zero_smul, add_zero, one_smul]
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
@@ -712,8 +704,7 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
by
refine' convexOn_iff_pairwise_pos.2 ⟨hs, fun x hx y hy hxy a b ha hb hab => _⟩
wlog h : x < y
- · rw [add_comm (a • x), add_comm (a • f x)]
- rw [add_comm] at hab
+ · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
@@ -756,8 +747,7 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
by
refine' ⟨hs, fun x hx y hy hxy a b ha hb hab => _⟩
wlog h : x < y
- · rw [add_comm (a • x), add_comm (a • f x)]
- rw [add_comm] at hab
+ · rw [add_comm (a • x), add_comm (a • f x)]; rw [add_comm] at hab
refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -540,10 +540,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β]
/- warning: convex_on_iff_forall_pos -> convexOn_iff_forall_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x s) -> (forall {{y : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on_iff_forall_pos convexOn_iff_forall_posₓ'. -/
theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
@@ -569,10 +566,7 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
/- warning: concave_on_iff_forall_pos -> concaveOn_iff_forall_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x s) -> (forall {{y : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on_iff_forall_pos concaveOn_iff_forall_posₓ'. -/
theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
@@ -586,10 +580,7 @@ theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
#align concave_on_iff_forall_pos concaveOn_iff_forall_pos
/- warning: convex_on_iff_pairwise_pos -> convexOn_iff_pairwise_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y)))))))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u3} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_posₓ'. -/
theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
@@ -607,10 +598,7 @@ theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_pos
/- warning: concave_on_iff_pairwise_pos -> concaveOn_iff_pairwise_pos is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y)))))))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u3} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_posₓ'. -/
theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
@@ -705,10 +693,7 @@ section LinearOrder
variable [LinearOrder E] {s : Set E} {f : E → β}
/- warning: linear_order.convex_on_of_lt -> LinearOrder.convexOn_of_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+<too large>
Case conversion may be inaccurate. Consider using '#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is convex, it suffices to
@@ -734,10 +719,7 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
/- warning: linear_order.concave_on_of_lt -> LinearOrder.concaveOn_of_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+<too large>
Case conversion may be inaccurate. Consider using '#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is concave it suffices to
@@ -756,10 +738,7 @@ theorem LinearOrder.concaveOn_of_lt (hs : Convex 𝕜 s)
#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_lt
/- warning: linear_order.strict_convex_on_of_lt -> LinearOrder.strictConvexOn_of_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+<too large>
Case conversion may be inaccurate. Consider using '#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly convex, it suffices
@@ -784,10 +763,7 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
/- warning: linear_order.strict_concave_on_of_lt -> LinearOrder.strictConcaveOn_of_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+<too large>
Case conversion may be inaccurate. Consider using '#align linear_order.strict_concave_on_of_lt LinearOrder.strictConcaveOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly concave it suffices
@@ -814,10 +790,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
/- warning: convex_on.comp_linear_map -> ConvexOn.comp_linearMap is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConvexOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.comp_linear_map ConvexOn.comp_linearMapₓ'. -/
/-- If `g` is convex on `s`, so is `(f ∘ g)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
@@ -830,10 +803,7 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
#align convex_on.comp_linear_map ConvexOn.comp_linearMap
/- warning: concave_on.comp_linear_map -> ConcaveOn.comp_linearMap is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConcaveOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.comp_linear_map ConcaveOn.comp_linearMapₓ'. -/
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConcaveOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConcaveOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
@@ -964,10 +934,7 @@ theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({
#align concave_on.convex_gt ConcaveOn.convex_gt
/- warning: convex_on.open_segment_subset_strict_epigraph -> ConvexOn.openSegment_subset_strict_epigraph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β q)) (Prod.snd.{u2, u3} E β q))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u1} E β) (q : Prod.{u2, u1} E β), (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))) -> (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β q) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β q)) (Prod.snd.{u2, u1} E β q))) -> (HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} E β)) (Set.instHasSubsetSet.{max u2 u1} (Prod.{u2, u1} E β)) (openSegment.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraphₓ'. -/
theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ f p.1 < p.2) (hq : q.1 ∈ s ∧ f q.1 ≤ q.2) :
@@ -983,10 +950,7 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
/- warning: concave_on.open_segment_subset_strict_hypograph -> ConcaveOn.openSegment_subset_strict_hypograph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β q) (f (Prod.fst.{u2, u3} E β q)))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u1} E β) (q : Prod.{u2, u1} E β), (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))) -> (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β q) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β q) (f (Prod.fst.{u2, u1} E β q)))) -> (HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} E β)) (Set.instHasSubsetSet.{max u2 u1} (Prod.{u2, u1} E β)) (openSegment.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypographₓ'. -/
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ p.2 < f p.1) (hq : q.1 ∈ s ∧ q.2 ≤ f q.1) :
@@ -995,10 +959,7 @@ theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f)
#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypograph
/- warning: convex_on.convex_strict_epigraph -> ConvexOn.convex_strict_epigraph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraphₓ'. -/
theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
@@ -1007,10 +968,7 @@ theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraph
/- warning: concave_on.convex_strict_hypograph -> ConcaveOn.convex_strict_hypograph is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.convex_strict_hypograph ConcaveOn.convex_strict_hypographₓ'. -/
theorem ConcaveOn.convex_strict_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
@@ -1099,10 +1057,7 @@ theorem StrictConcaveOn.inf (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveO
#align strict_concave_on.inf StrictConcaveOn.inf
/- warning: convex_on.le_on_segment' -> ConvexOn.le_on_segment' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment' ConvexOn.le_on_segment'ₓ'. -/
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s) {a b : 𝕜}
@@ -1117,10 +1072,7 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
/- warning: concave_on.ge_on_segment' -> ConcaveOn.ge_on_segment' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'ₓ'. -/
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -1154,10 +1106,7 @@ theorem ConcaveOn.ge_on_segment (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x
#align concave_on.ge_on_segment ConcaveOn.ge_on_segment
/- warning: strict_convex_on.lt_on_open_segment' -> StrictConvexOn.lt_on_open_segment' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'ₓ'. -/
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
@@ -1174,10 +1123,7 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
/- warning: strict_concave_on.lt_on_open_segment' -> StrictConcaveOn.lt_on_open_segment' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'ₓ'. -/
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
@@ -1225,10 +1171,7 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
/- warning: convex_on.le_left_of_right_le' -> ConvexOn.le_left_of_right_le' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f x))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'ₓ'. -/
theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f y ≤ f (a • x + b • y)) :
@@ -1244,10 +1187,7 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
/- warning: concave_on.left_le_of_le_right' -> ConcaveOn.left_le_of_le_right' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'ₓ'. -/
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f (a • x + b • y) ≤ f y) :
@@ -1256,10 +1196,7 @@ theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'
/- warning: convex_on.le_right_of_left_le' -> ConvexOn.le_right_of_left_le' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'ₓ'. -/
theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x ≤ f (a • x + b • y)) :
@@ -1269,10 +1206,7 @@ theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
/- warning: concave_on.right_le_of_le_left' -> ConcaveOn.right_le_of_le_left' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'ₓ'. -/
theorem ConcaveOn.right_le_of_le_left' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) ≤ f x) :
@@ -1335,10 +1269,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
/- warning: convex_on.lt_left_of_right_lt' -> ConvexOn.lt_left_of_right_lt' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f x))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'ₓ'. -/
/- The following lemmas don't require `module 𝕜 E` if you add the hypothesis `x ≠ y`. At the time of
the writing, we decided the resulting lemmas wouldn't be useful. Feel free to reintroduce them. -/
@@ -1356,10 +1287,7 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
/- warning: concave_on.left_lt_of_lt_right' -> ConcaveOn.left_lt_of_lt_right' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'ₓ'. -/
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f (a • x + b • y) < f y) :
@@ -1368,10 +1296,7 @@ theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'
/- warning: convex_on.lt_right_of_left_lt' -> ConvexOn.lt_right_of_left_lt' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'ₓ'. -/
theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x < f (a • x + b • y)) :
@@ -1381,10 +1306,7 @@ theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
/- warning: concave_on.lt_right_of_left_lt' -> ConcaveOn.lt_right_of_left_lt' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f x)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'ₓ'. -/
theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) < f x) :
@@ -1393,10 +1315,7 @@ theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b
#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'
/- warning: convex_on.lt_left_of_right_lt -> ConvexOn.lt_left_of_right_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_ltₓ'. -/
theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y < f z) : f z < f x :=
@@ -1406,10 +1325,7 @@ theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_lt
/- warning: concave_on.left_lt_of_lt_right -> ConcaveOn.left_lt_of_lt_right is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_rightₓ'. -/
theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z < f y) : f x < f z :=
@@ -1417,10 +1333,7 @@ theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx
#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_right
/- warning: convex_on.lt_right_of_left_lt -> ConvexOn.lt_right_of_left_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_ltₓ'. -/
theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x < f z) : f z < f y :=
@@ -1430,10 +1343,7 @@ theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_lt
/- warning: concave_on.lt_right_of_left_lt -> ConcaveOn.lt_right_of_left_lt is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt ConcaveOn.lt_right_of_left_ltₓ'. -/
theorem ConcaveOn.lt_right_of_left_lt (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z < f x) : f y < f z :=
@@ -1553,30 +1463,21 @@ alias neg_strictConcaveOn_iff ↔ _ StrictConvexOn.neg
#align strict_convex_on.neg StrictConvexOn.neg
/- warning: convex_on.sub -> ConvexOn.sub is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.sub ConvexOn.subₓ'. -/
theorem ConvexOn.sub (hf : ConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align convex_on.sub ConvexOn.sub
/- warning: concave_on.sub -> ConcaveOn.sub is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.sub ConcaveOn.subₓ'. -/
theorem ConcaveOn.sub (hf : ConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align concave_on.sub ConcaveOn.sub
/- warning: strict_convex_on.sub -> StrictConvexOn.sub is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_convex_on.sub StrictConvexOn.subₓ'. -/
theorem StrictConvexOn.sub (hf : StrictConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
@@ -1584,10 +1485,7 @@ theorem StrictConvexOn.sub (hf : StrictConvexOn 𝕜 s f) (hg : StrictConcaveOn
#align strict_convex_on.sub StrictConvexOn.sub
/- warning: strict_concave_on.sub -> StrictConcaveOn.sub is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_concave_on.sub StrictConcaveOn.subₓ'. -/
theorem StrictConcaveOn.sub (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
@@ -1595,10 +1493,7 @@ theorem StrictConcaveOn.sub (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConvexOn
#align strict_concave_on.sub StrictConcaveOn.sub
/- warning: convex_on.sub_strict_concave_on -> ConvexOn.sub_strictConcaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOnₓ'. -/
theorem ConvexOn.sub_strictConcaveOn (hf : ConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
@@ -1606,10 +1501,7 @@ theorem ConvexOn.sub_strictConcaveOn (hf : ConvexOn 𝕜 s f) (hg : StrictConcav
#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOn
/- warning: concave_on.sub_strict_convex_on -> ConcaveOn.sub_strictConvexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOnₓ'. -/
theorem ConcaveOn.sub_strictConvexOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
@@ -1617,10 +1509,7 @@ theorem ConcaveOn.sub_strictConvexOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConve
#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOn
/- warning: strict_convex_on.sub_concave_on -> StrictConvexOn.sub_concaveOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOnₓ'. -/
theorem StrictConvexOn.sub_concaveOn (hf : StrictConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
@@ -1628,10 +1517,7 @@ theorem StrictConvexOn.sub_concaveOn (hf : StrictConvexOn 𝕜 s f) (hg : Concav
#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOn
/- warning: strict_concave_on.sub_convex_on -> StrictConcaveOn.sub_convexOn is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_concave_on.sub_convex_on StrictConcaveOn.sub_convexOnₓ'. -/
theorem StrictConcaveOn.sub_convexOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
@@ -1761,10 +1647,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
/- warning: convex_on.comp_affine_map -> ConvexOn.comp_affineMap is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : OrderedAddCommMonoid.{u4} β] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_6 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] [_inst_7 : SMul.{u1, u4} 𝕜 β] {f : F -> β} (g : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u1, u2, u4} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g)))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConvexOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.comp_affine_map ConvexOn.comp_affineMapₓ'. -/
/-- If a function is convex on `s`, it remains convex when precomposed by an affine map. -/
theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConvexOn 𝕜 s f) :
@@ -1778,10 +1661,7 @@ theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F
#align convex_on.comp_affine_map ConvexOn.comp_affineMap
/- warning: concave_on.comp_affine_map -> ConcaveOn.comp_affineMap is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : OrderedAddCommMonoid.{u4} β] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_6 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] [_inst_7 : SMul.{u1, u4} 𝕜 β] {f : F -> β} (g : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g)))
-but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConcaveOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.comp_affine_map ConcaveOn.comp_affineMapₓ'. -/
/-- If a function is concave on `s`, it remains concave when precomposed by an affine map. -/
theorem ConcaveOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConcaveOn 𝕜 s f) :
@@ -1808,10 +1688,7 @@ section SMul
variable [SMul 𝕜 E] [SMul 𝕜 β] {s : Set E}
/- warning: convex_on_iff_div -> convexOn_iff_div is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on_iff_div convexOn_iff_divₓ'. -/
theorem convexOn_iff_div {f : E → β} :
ConvexOn 𝕜 s f ↔
@@ -1837,10 +1714,7 @@ theorem convexOn_iff_div {f : E → β} :
#align convex_on_iff_div convexOn_iff_div
/- warning: concave_on_iff_div -> concaveOn_iff_div is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on_iff_div concaveOn_iff_divₓ'. -/
theorem concaveOn_iff_div {f : E → β} :
ConcaveOn 𝕜 s f ↔
@@ -1859,10 +1733,7 @@ theorem concaveOn_iff_div {f : E → β} :
#align concave_on_iff_div concaveOn_iff_div
/- warning: strict_convex_on_iff_div -> strictConvexOn_iff_div is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_div strictConvexOn_iff_divₓ'. -/
theorem strictConvexOn_iff_div {f : E → β} :
StrictConvexOn 𝕜 s f ↔
@@ -1889,10 +1760,7 @@ theorem strictConvexOn_iff_div {f : E → β} :
#align strict_convex_on_iff_div strictConvexOn_iff_div
/- warning: strict_concave_on_iff_div -> strictConcaveOn_iff_div is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
-but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_div strictConcaveOn_iff_divₓ'. -/
theorem strictConcaveOn_iff_div {f : E → β} :
StrictConcaveOn 𝕜 s f ↔
@@ -1922,10 +1790,7 @@ variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module
{x y z : 𝕜} {s : Set 𝕜} {f : 𝕜 → β}
/- warning: convex_on.le_right_of_left_le'' -> ConvexOn.le_right_of_left_le'' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f x) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f z))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''ₓ'. -/
theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y)
(hyz : y ≤ z) (h : f x ≤ f y) : f y ≤ f z :=
@@ -1934,10 +1799,7 @@ theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (
#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''
/- warning: convex_on.le_left_of_right_le'' -> ConvexOn.le_left_of_right_le'' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f z) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f x))
+<too large>
Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''ₓ'. -/
theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x ≤ y)
(hyz : y < z) (h : f z ≤ f y) : f y ≤ f x :=
@@ -1946,10 +1808,7 @@ theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (
#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''
/- warning: concave_on.right_le_of_le_left'' -> ConcaveOn.right_le_of_le_left'' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f z) (f y))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''ₓ'. -/
theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x < y) (hyz : y ≤ z) (h : f y ≤ f x) : f z ≤ f y :=
@@ -1957,10 +1816,7 @@ theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s)
#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''
/- warning: concave_on.left_le_of_le_right'' -> ConcaveOn.left_le_of_le_right'' is a dubious translation:
-lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y))
-but is expected to have type
- forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f x) (f y))
+<too large>
Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right'' ConcaveOn.left_le_of_le_right''ₓ'. -/
theorem ConcaveOn.left_le_of_le_right'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x ≤ y) (hyz : y < z) (h : f y ≤ f z) : f x ≤ f y :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -624,7 +624,7 @@ theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
Case conversion may be inaccurate. Consider using '#align linear_map.convex_on LinearMap.convexOnₓ'. -/
/-- A linear map is convex. -/
theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s f :=
@@ -635,7 +635,7 @@ theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
Case conversion may be inaccurate. Consider using '#align linear_map.concave_on LinearMap.concaveOnₓ'. -/
/-- A linear map is concave. -/
theorem LinearMap.concaveOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s f :=
@@ -817,7 +817,7 @@ variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConvexOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+ forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConvexOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
Case conversion may be inaccurate. Consider using '#align convex_on.comp_linear_map ConvexOn.comp_linearMapₓ'. -/
/-- If `g` is convex on `s`, so is `(f ∘ g)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
@@ -833,7 +833,7 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConcaveOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+ forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConcaveOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
Case conversion may be inaccurate. Consider using '#align concave_on.comp_linear_map ConcaveOn.comp_linearMapₓ'. -/
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConcaveOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConcaveOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -109,7 +109,7 @@ open OrderDual (toDual ofDual)
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
Case conversion may be inaccurate. Consider using '#align convex_on.dual ConvexOn.dualₓ'. -/
theorem ConvexOn.dual (hf : ConvexOn 𝕜 s f) : ConcaveOn 𝕜 s (toDual ∘ f) :=
hf
@@ -119,7 +119,7 @@ theorem ConvexOn.dual (hf : ConvexOn 𝕜 s f) : ConcaveOn 𝕜 s (toDual ∘ f)
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
Case conversion may be inaccurate. Consider using '#align concave_on.dual ConcaveOn.dualₓ'. -/
theorem ConcaveOn.dual (hf : ConcaveOn 𝕜 s f) : ConvexOn 𝕜 s (toDual ∘ f) :=
hf
@@ -129,7 +129,7 @@ theorem ConcaveOn.dual (hf : ConcaveOn 𝕜 s f) : ConvexOn 𝕜 s (toDual ∘ f
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
Case conversion may be inaccurate. Consider using '#align strict_convex_on.dual StrictConvexOn.dualₓ'. -/
theorem StrictConvexOn.dual (hf : StrictConvexOn 𝕜 s f) : StrictConcaveOn 𝕜 s (toDual ∘ f) :=
hf
@@ -139,7 +139,7 @@ theorem StrictConvexOn.dual (hf : StrictConvexOn 𝕜 s f) : StrictConcaveOn
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
Case conversion may be inaccurate. Consider using '#align strict_concave_on.dual StrictConcaveOn.dualₓ'. -/
theorem StrictConcaveOn.dual (hf : StrictConcaveOn 𝕜 s f) : StrictConvexOn 𝕜 s (toDual ∘ f) :=
hf
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -624,7 +624,7 @@ theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
Case conversion may be inaccurate. Consider using '#align linear_map.convex_on LinearMap.convexOnₓ'. -/
/-- A linear map is convex. -/
theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s f :=
@@ -635,7 +635,7 @@ theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
Case conversion may be inaccurate. Consider using '#align linear_map.concave_on LinearMap.concaveOnₓ'. -/
/-- A linear map is concave. -/
theorem LinearMap.concaveOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s f :=
@@ -817,7 +817,7 @@ variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConvexOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+ forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConvexOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
Case conversion may be inaccurate. Consider using '#align convex_on.comp_linear_map ConvexOn.comp_linearMapₓ'. -/
/-- If `g` is convex on `s`, so is `(f ∘ g)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
@@ -833,7 +833,7 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
but is expected to have type
- forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConcaveOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+ forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConcaveOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
Case conversion may be inaccurate. Consider using '#align concave_on.comp_linear_map ConcaveOn.comp_linearMapₓ'. -/
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConcaveOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConcaveOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -1764,7 +1764,7 @@ variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : OrderedAddCommMonoid.{u4} β] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_6 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] [_inst_7 : SMul.{u1, u4} 𝕜 β] {f : F -> β} (g : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u1, u2, u4} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g)))
but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConvexOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
+ forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConvexOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
Case conversion may be inaccurate. Consider using '#align convex_on.comp_affine_map ConvexOn.comp_affineMapₓ'. -/
/-- If a function is convex on `s`, it remains convex when precomposed by an affine map. -/
theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConvexOn 𝕜 s f) :
@@ -1781,7 +1781,7 @@ theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F
lean 3 declaration is
forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : OrderedAddCommMonoid.{u4} β] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_6 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] [_inst_7 : SMul.{u1, u4} 𝕜 β] {f : F -> β} (g : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g)))
but is expected to have type
- forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConcaveOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
+ forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConcaveOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1003 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
Case conversion may be inaccurate. Consider using '#align concave_on.comp_affine_map ConcaveOn.comp_affineMapₓ'. -/
/-- If a function is concave on `s`, it remains concave when precomposed by an affine map. -/
theorem ConcaveOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConcaveOn 𝕜 s f) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -370,7 +370,7 @@ theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun x :
/- warning: convex_on_of_convex_epigraph -> convexOn_of_convex_epigraph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))))) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
Case conversion may be inaccurate. Consider using '#align convex_on_of_convex_epigraph convexOn_of_convex_epigraphₓ'. -/
@@ -382,7 +382,7 @@ theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s
/- warning: concave_on_of_convex_hypograph -> concaveOn_of_convex_hypograph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))))) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
Case conversion may be inaccurate. Consider using '#align concave_on_of_convex_hypograph concaveOn_of_convex_hypographₓ'. -/
@@ -399,7 +399,7 @@ variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E
/- warning: convex_on.convex_le -> ConvexOn.convex_le is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f x) r))))
Case conversion may be inaccurate. Consider using '#align convex_on.convex_le ConvexOn.convex_leₓ'. -/
@@ -416,7 +416,7 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
/- warning: concave_on.convex_ge -> ConcaveOn.convex_ge is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) r (f x)))))
Case conversion may be inaccurate. Consider using '#align concave_on.convex_ge ConcaveOn.convex_geₓ'. -/
@@ -426,7 +426,7 @@ theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({
/- warning: convex_on.convex_epigraph -> ConvexOn.convex_epigraph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
Case conversion may be inaccurate. Consider using '#align convex_on.convex_epigraph ConvexOn.convex_epigraphₓ'. -/
@@ -443,7 +443,7 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
/- warning: concave_on.convex_hypograph -> ConcaveOn.convex_hypograph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
Case conversion may be inaccurate. Consider using '#align concave_on.convex_hypograph ConcaveOn.convex_hypographₓ'. -/
@@ -454,7 +454,7 @@ theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
/- warning: convex_on_iff_convex_epigraph -> convexOn_iff_convex_epigraph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
Case conversion may be inaccurate. Consider using '#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraphₓ'. -/
@@ -465,7 +465,7 @@ theorem convexOn_iff_convex_epigraph :
/- warning: concave_on_iff_convex_hypograph -> concaveOn_iff_convex_hypograph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
Case conversion may be inaccurate. Consider using '#align concave_on_iff_convex_hypograph concaveOn_iff_convex_hypographₓ'. -/
@@ -541,7 +541,7 @@ variable [Module 𝕜 E] [Module 𝕜 β]
/- warning: convex_on_iff_forall_pos -> convexOn_iff_forall_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))))
but is expected to have type
forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x s) -> (forall {{y : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))))
Case conversion may be inaccurate. Consider using '#align convex_on_iff_forall_pos convexOn_iff_forall_posₓ'. -/
@@ -570,7 +570,7 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
/- warning: concave_on_iff_forall_pos -> concaveOn_iff_forall_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))))
but is expected to have type
forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x s) -> (forall {{y : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))))
Case conversion may be inaccurate. Consider using '#align concave_on_iff_forall_pos concaveOn_iff_forall_posₓ'. -/
@@ -587,7 +587,7 @@ theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
/- warning: convex_on_iff_pairwise_pos -> convexOn_iff_pairwise_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y)))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y)))))))
but is expected to have type
forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u3} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y)))))))
Case conversion may be inaccurate. Consider using '#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_posₓ'. -/
@@ -608,7 +608,7 @@ theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
/- warning: concave_on_iff_pairwise_pos -> concaveOn_iff_pairwise_pos is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y)))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y)))))))
but is expected to have type
forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u3} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y)))))))
Case conversion may be inaccurate. Consider using '#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_posₓ'. -/
@@ -671,7 +671,7 @@ variable [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
/- warning: strict_convex_on.convex_lt -> StrictConvexOn.convex_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f x) r))))
Case conversion may be inaccurate. Consider using '#align strict_convex_on.convex_lt StrictConvexOn.convex_ltₓ'. -/
@@ -689,7 +689,7 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
/- warning: strict_concave_on.convex_gt -> StrictConcaveOn.convex_gt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) r (f x)))))
Case conversion may be inaccurate. Consider using '#align strict_concave_on.convex_gt StrictConcaveOn.convex_gtₓ'. -/
@@ -706,7 +706,7 @@ variable [LinearOrder E] {s : Set E} {f : E → β}
/- warning: linear_order.convex_on_of_lt -> LinearOrder.convexOn_of_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
Case conversion may be inaccurate. Consider using '#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_ltₓ'. -/
@@ -735,7 +735,7 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
/- warning: linear_order.concave_on_of_lt -> LinearOrder.concaveOn_of_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
Case conversion may be inaccurate. Consider using '#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_ltₓ'. -/
@@ -757,7 +757,7 @@ theorem LinearOrder.concaveOn_of_lt (hs : Convex 𝕜 s)
/- warning: linear_order.strict_convex_on_of_lt -> LinearOrder.strictConvexOn_of_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
Case conversion may be inaccurate. Consider using '#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_ltₓ'. -/
@@ -785,7 +785,7 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
/- warning: linear_order.strict_concave_on_of_lt -> LinearOrder.strictConcaveOn_of_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toHasLt.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
Case conversion may be inaccurate. Consider using '#align linear_order.strict_concave_on_of_lt LinearOrder.strictConcaveOn_of_ltₓ'. -/
@@ -937,7 +937,7 @@ variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f :
/- warning: convex_on.convex_lt -> ConvexOn.convex_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f x) r) s))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f x) r) s))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f x) r))))
Case conversion may be inaccurate. Consider using '#align convex_on.convex_lt ConvexOn.convex_ltₓ'. -/
@@ -955,7 +955,7 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
/- warning: concave_on.convex_gt -> ConcaveOn.convex_gt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) r (f x)) s))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) r (f x)) s))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) r (f x)))))
Case conversion may be inaccurate. Consider using '#align concave_on.convex_gt ConcaveOn.convex_gtₓ'. -/
@@ -965,7 +965,7 @@ theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({
/- warning: convex_on.open_segment_subset_strict_epigraph -> ConvexOn.openSegment_subset_strict_epigraph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β q)) (Prod.snd.{u2, u3} E β q))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β q)) (Prod.snd.{u2, u3} E β q))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u1} E β) (q : Prod.{u2, u1} E β), (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))) -> (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β q) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β q)) (Prod.snd.{u2, u1} E β q))) -> (HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} E β)) (Set.instHasSubsetSet.{max u2 u1} (Prod.{u2, u1} E β)) (openSegment.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))))))
Case conversion may be inaccurate. Consider using '#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraphₓ'. -/
@@ -984,7 +984,7 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
/- warning: concave_on.open_segment_subset_strict_hypograph -> ConcaveOn.openSegment_subset_strict_hypograph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β q) (f (Prod.fst.{u2, u3} E β q)))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β q) (f (Prod.fst.{u2, u3} E β q)))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u1} E β) (q : Prod.{u2, u1} E β), (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))) -> (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β q) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β q) (f (Prod.fst.{u2, u1} E β q)))) -> (HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} E β)) (Set.instHasSubsetSet.{max u2 u1} (Prod.{u2, u1} E β)) (openSegment.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))))))
Case conversion may be inaccurate. Consider using '#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypographₓ'. -/
@@ -996,7 +996,7 @@ theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f)
/- warning: convex_on.convex_strict_epigraph -> ConvexOn.convex_strict_epigraph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
Case conversion may be inaccurate. Consider using '#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraphₓ'. -/
@@ -1008,7 +1008,7 @@ theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
/- warning: concave_on.convex_strict_hypograph -> ConcaveOn.convex_strict_hypograph is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
Case conversion may be inaccurate. Consider using '#align concave_on.convex_strict_hypograph ConcaveOn.convex_strict_hypographₓ'. -/
@@ -1100,7 +1100,7 @@ theorem StrictConcaveOn.inf (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveO
/- warning: convex_on.le_on_segment' -> ConvexOn.le_on_segment' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)))))
Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment' ConvexOn.le_on_segment'ₓ'. -/
@@ -1118,7 +1118,7 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
/- warning: concave_on.ge_on_segment' -> ConcaveOn.ge_on_segment' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'ₓ'. -/
@@ -1130,7 +1130,7 @@ theorem ConcaveOn.ge_on_segment' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈
/- warning: convex_on.le_on_segment -> ConvexOn.le_on_segment is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (segment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f z) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y))))
Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment ConvexOn.le_on_segmentₓ'. -/
@@ -1143,7 +1143,7 @@ theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈
/- warning: concave_on.ge_on_segment -> ConcaveOn.ge_on_segment is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (segment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f z)))
Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment ConcaveOn.ge_on_segmentₓ'. -/
@@ -1155,7 +1155,7 @@ theorem ConcaveOn.ge_on_segment (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x
/- warning: strict_convex_on.lt_on_open_segment' -> StrictConvexOn.lt_on_open_segment' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)))))
Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'ₓ'. -/
@@ -1175,7 +1175,7 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
/- warning: strict_concave_on.lt_on_open_segment' -> StrictConcaveOn.lt_on_open_segment' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'ₓ'. -/
@@ -1189,7 +1189,7 @@ theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y
/- warning: strict_convex_on.lt_on_open_segment -> StrictConvexOn.lt_on_openSegment is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f z) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y))))
Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegmentₓ'. -/
@@ -1203,7 +1203,7 @@ theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z :
/- warning: strict_concave_on.lt_on_open_segment -> StrictConcaveOn.lt_on_openSegment is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f z)))
Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment StrictConcaveOn.lt_on_openSegmentₓ'. -/
@@ -1226,7 +1226,7 @@ variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g :
/- warning: convex_on.le_left_of_right_le' -> ConvexOn.le_left_of_right_le' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f x))))
Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'ₓ'. -/
@@ -1245,7 +1245,7 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
/- warning: concave_on.left_le_of_le_right' -> ConcaveOn.left_le_of_le_right' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'ₓ'. -/
@@ -1257,7 +1257,7 @@ theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
/- warning: convex_on.le_right_of_left_le' -> ConvexOn.le_right_of_left_le' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f y)))
Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'ₓ'. -/
@@ -1270,7 +1270,7 @@ theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
/- warning: concave_on.right_le_of_le_left' -> ConcaveOn.right_le_of_le_left' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))))
Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'ₓ'. -/
@@ -1282,7 +1282,7 @@ theorem ConcaveOn.right_le_of_le_left' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b
/- warning: convex_on.le_left_of_right_le -> ConvexOn.le_left_of_right_le is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)))
Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_leₓ'. -/
@@ -1295,7 +1295,7 @@ theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
/- warning: concave_on.left_le_of_le_right -> ConcaveOn.left_le_of_le_right is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)))
Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right ConcaveOn.left_le_of_le_rightₓ'. -/
@@ -1306,7 +1306,7 @@ theorem ConcaveOn.left_le_of_le_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx
/- warning: convex_on.le_right_of_left_le -> ConvexOn.le_right_of_left_le is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)))
Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_leₓ'. -/
@@ -1319,7 +1319,7 @@ theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
/- warning: concave_on.right_le_of_le_left -> ConcaveOn.right_le_of_le_left is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)))
Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left ConcaveOn.right_le_of_le_leftₓ'. -/
@@ -1336,7 +1336,7 @@ variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g
/- warning: convex_on.lt_left_of_right_lt' -> ConvexOn.lt_left_of_right_lt' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f x))))
Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'ₓ'. -/
@@ -1357,7 +1357,7 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
/- warning: concave_on.left_lt_of_lt_right' -> ConcaveOn.left_lt_of_lt_right' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))))))
Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'ₓ'. -/
@@ -1369,7 +1369,7 @@ theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
/- warning: convex_on.lt_right_of_left_lt' -> ConvexOn.lt_right_of_left_lt' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f y)))
Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'ₓ'. -/
@@ -1382,7 +1382,7 @@ theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
/- warning: concave_on.lt_right_of_left_lt' -> ConcaveOn.lt_right_of_left_lt' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f x)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))))
Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'ₓ'. -/
@@ -1394,7 +1394,7 @@ theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b
/- warning: convex_on.lt_left_of_right_lt -> ConvexOn.lt_left_of_right_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)))
Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_ltₓ'. -/
@@ -1407,7 +1407,7 @@ theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
/- warning: concave_on.left_lt_of_lt_right -> ConcaveOn.left_lt_of_lt_right is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)))
Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_rightₓ'. -/
@@ -1418,7 +1418,7 @@ theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx
/- warning: convex_on.lt_right_of_left_lt -> ConvexOn.lt_right_of_left_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)))
Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_ltₓ'. -/
@@ -1431,7 +1431,7 @@ theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
/- warning: concave_on.lt_right_of_left_lt -> ConcaveOn.lt_right_of_left_lt is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)))
Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt ConcaveOn.lt_right_of_left_ltₓ'. -/
@@ -1718,7 +1718,7 @@ variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E
/- warning: convex_on.smul -> ConvexOn.smul is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3)] [_inst_6 : OrderedSMul.{u3, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))))) c) -> (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s (fun (x : E) => HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))))) c (f x)))
Case conversion may be inaccurate. Consider using '#align convex_on.smul ConvexOn.smulₓ'. -/
@@ -1733,7 +1733,7 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
/- warning: concave_on.smul -> ConcaveOn.smul is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3)] [_inst_6 : OrderedSMul.{u3, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))))) c) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s (fun (x : E) => HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))))) c (f x)))
Case conversion may be inaccurate. Consider using '#align concave_on.smul ConcaveOn.smulₓ'. -/
@@ -1809,7 +1809,7 @@ variable [SMul 𝕜 E] [SMul 𝕜 β] {s : Set E}
/- warning: convex_on_iff_div -> convexOn_iff_div is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))))))))
Case conversion may be inaccurate. Consider using '#align convex_on_iff_div convexOn_iff_divₓ'. -/
@@ -1838,7 +1838,7 @@ theorem convexOn_iff_div {f : E → β} :
/- warning: concave_on_iff_div -> concaveOn_iff_div is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toHasLe.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))))))))
Case conversion may be inaccurate. Consider using '#align concave_on_iff_div concaveOn_iff_divₓ'. -/
@@ -1860,7 +1860,7 @@ theorem concaveOn_iff_div {f : E → β} :
/- warning: strict_convex_on_iff_div -> strictConvexOn_iff_div is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))))))))
Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_div strictConvexOn_iff_divₓ'. -/
@@ -1890,7 +1890,7 @@ theorem strictConvexOn_iff_div {f : E → β} :
/- warning: strict_concave_on_iff_div -> strictConcaveOn_iff_div is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toHasLt.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
but is expected to have type
forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))))))))
Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_div strictConcaveOn_iff_divₓ'. -/
@@ -1923,7 +1923,7 @@ variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module
/- warning: convex_on.le_right_of_left_le'' -> ConvexOn.le_right_of_left_le'' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z))
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z))
but is expected to have type
forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f x) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f z))
Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''ₓ'. -/
@@ -1935,7 +1935,7 @@ theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (
/- warning: convex_on.le_left_of_right_le'' -> ConvexOn.le_left_of_right_le'' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x))
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x))
but is expected to have type
forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f z) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f x))
Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''ₓ'. -/
@@ -1947,7 +1947,7 @@ theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (
/- warning: concave_on.right_le_of_le_left'' -> ConcaveOn.right_le_of_le_left'' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y))
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y))
but is expected to have type
forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f z) (f y))
Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''ₓ'. -/
@@ -1958,7 +1958,7 @@ theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s)
/- warning: concave_on.left_le_of_le_right'' -> ConcaveOn.left_le_of_le_right'' is a dubious translation:
lean 3 declaration is
- forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y))
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toHasLe.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toHasLt.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z)) -> (LE.le.{u2} β (Preorder.toHasLe.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y))
but is expected to have type
forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f x) (f y))
Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right'' ConcaveOn.left_le_of_le_right''ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, François Dupuis
! This file was ported from Lean 3 source module analysis.convex.function
-! leanprover-community/mathlib commit 92ca63f0fb391a9ca5f22d2409a6080e786d99f7
+! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.Analysis.Convex.Basic
/-!
# Convex and concave functions
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines convex and concave functions in vector spaces and proves the finite Jensen
inequality. The integral version can be found in `analysis.convex.integral`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/e05ead7993520a432bec94ac504842d90707ad63
@@ -52,6 +52,7 @@ section SMul
variable (𝕜) [SMul 𝕜 E] [SMul 𝕜 α] [SMul 𝕜 β] (s : Set E) (f : E → β) {g : β → α}
+#print ConvexOn /-
/-- Convexity of functions -/
def ConvexOn : Prop :=
Convex 𝕜 s ∧
@@ -60,7 +61,9 @@ def ConvexOn : Prop :=
∀ ⦃y⦄,
y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → f (a • x + b • y) ≤ a • f x + b • f y
#align convex_on ConvexOn
+-/
+#print ConcaveOn /-
/-- Concavity of functions -/
def ConcaveOn : Prop :=
Convex 𝕜 s ∧
@@ -69,7 +72,9 @@ def ConcaveOn : Prop :=
∀ ⦃y⦄,
y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 ≤ a → 0 ≤ b → a + b = 1 → a • f x + b • f y ≤ f (a • x + b • y)
#align concave_on ConcaveOn
+-/
+#print StrictConvexOn /-
/-- Strict convexity of functions -/
def StrictConvexOn : Prop :=
Convex 𝕜 s ∧
@@ -79,7 +84,9 @@ def StrictConvexOn : Prop :=
y ∈ s →
x ≠ y → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → f (a • x + b • y) < a • f x + b • f y
#align strict_convex_on StrictConvexOn
+-/
+#print StrictConcaveOn /-
/-- Strict concavity of functions -/
def StrictConcaveOn : Prop :=
Convex 𝕜 s ∧
@@ -89,59 +96,118 @@ def StrictConcaveOn : Prop :=
y ∈ s →
x ≠ y → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → a • f x + b • f y < f (a • x + b • y)
#align strict_concave_on StrictConcaveOn
+-/
variable {𝕜 s f}
open OrderDual (toDual ofDual)
+/- warning: convex_on.dual -> ConvexOn.dual is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+Case conversion may be inaccurate. Consider using '#align convex_on.dual ConvexOn.dualₓ'. -/
theorem ConvexOn.dual (hf : ConvexOn 𝕜 s f) : ConcaveOn 𝕜 s (toDual ∘ f) :=
hf
#align convex_on.dual ConvexOn.dual
+/- warning: concave_on.dual -> ConcaveOn.dual is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+Case conversion may be inaccurate. Consider using '#align concave_on.dual ConcaveOn.dualₓ'. -/
theorem ConcaveOn.dual (hf : ConcaveOn 𝕜 s f) : ConvexOn 𝕜 s (toDual ∘ f) :=
hf
#align concave_on.dual ConcaveOn.dual
+/- warning: strict_convex_on.dual -> StrictConvexOn.dual is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.dual StrictConvexOn.dualₓ'. -/
theorem StrictConvexOn.dual (hf : StrictConvexOn 𝕜 s f) : StrictConcaveOn 𝕜 s (toDual ∘ f) :=
hf
#align strict_convex_on.dual StrictConvexOn.dual
+/- warning: strict_concave_on.dual -> StrictConcaveOn.dual is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E (OrderDual.{u3} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u3} β _inst_5) _inst_6 (instSMulOrderDual.{u1, u3} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u3, succ u3} E β (OrderDual.{u3} β) (coeFn.{succ u3, succ u3} (Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) (fun (_x : Equiv.{succ u3, succ u3} β (OrderDual.{u3} β)) => β -> (OrderDual.{u3} β)) (Equiv.hasCoeToFun.{succ u3, succ u3} β (OrderDual.{u3} β)) (OrderDual.toDual.{u3} β)) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_8 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E (OrderDual.{u1} β) _inst_1 _inst_2 (OrderDual.orderedAddCommMonoid.{u1} β _inst_5) _inst_6 (instSMulOrderDual.{u3, u1} 𝕜 β _inst_8) s (Function.comp.{succ u2, succ u1, succ u1} E β (OrderDual.{u1} β) (FunLike.coe.{succ u1, succ u1, succ u1} (Equiv.{succ u1, succ u1} β (OrderDual.{u1} β)) β (fun (_x : β) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : β) => OrderDual.{u1} β) _x) (Equiv.instFunLikeEquiv.{succ u1, succ u1} β (OrderDual.{u1} β)) (OrderDual.toDual.{u1} β)) f))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.dual StrictConcaveOn.dualₓ'. -/
theorem StrictConcaveOn.dual (hf : StrictConcaveOn 𝕜 s f) : StrictConvexOn 𝕜 s (toDual ∘ f) :=
hf
#align strict_concave_on.dual StrictConcaveOn.dual
+#print convexOn_id /-
theorem convexOn_id {s : Set β} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s id :=
⟨hs, by
intros
rfl⟩
#align convex_on_id convexOn_id
+-/
+#print concaveOn_id /-
theorem concaveOn_id {s : Set β} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s id :=
⟨hs, by
intros
rfl⟩
#align concave_on_id concaveOn_id
+-/
+/- warning: convex_on.subset -> ConvexOn.subset is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+Case conversion may be inaccurate. Consider using '#align convex_on.subset ConvexOn.subsetₓ'. -/
theorem ConvexOn.subset {t : Set E} (hf : ConvexOn 𝕜 t f) (hst : s ⊆ t) (hs : Convex 𝕜 s) :
ConvexOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align convex_on.subset ConvexOn.subset
+/- warning: concave_on.subset -> ConcaveOn.subset is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+Case conversion may be inaccurate. Consider using '#align concave_on.subset ConcaveOn.subsetₓ'. -/
theorem ConcaveOn.subset {t : Set E} (hf : ConcaveOn 𝕜 t f) (hst : s ⊆ t) (hs : Convex 𝕜 s) :
ConcaveOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align concave_on.subset ConcaveOn.subset
+/- warning: strict_convex_on.subset -> StrictConvexOn.subset is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (StrictConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.subset StrictConvexOn.subsetₓ'. -/
theorem StrictConvexOn.subset {t : Set E} (hf : StrictConvexOn 𝕜 t f) (hst : s ⊆ t)
(hs : Convex 𝕜 s) : StrictConvexOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align strict_convex_on.subset StrictConvexOn.subset
+/- warning: strict_concave_on.subset -> StrictConcaveOn.subset is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_8 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {t : Set.{u2} E}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u2} (Set.{u2} E) (Set.hasSubset.{u2} E) s t) -> (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u2, u3} 𝕜 E] [_inst_8 : SMul.{u2, u1} 𝕜 β] {s : Set.{u3} E} {f : E -> β} {t : Set.{u3} E}, (StrictConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 t f) -> (HasSubset.Subset.{u3} (Set.{u3} E) (Set.instHasSubsetSet.{u3} E) s t) -> (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (StrictConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f)
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.subset StrictConcaveOn.subsetₓ'. -/
theorem StrictConcaveOn.subset {t : Set E} (hf : StrictConcaveOn 𝕜 t f) (hst : s ⊆ t)
(hs : Convex 𝕜 s) : StrictConcaveOn 𝕜 s f :=
⟨hs, fun x hx y hy => hf.2 (hst hx) (hst hy)⟩
#align strict_concave_on.subset StrictConcaveOn.subset
+/- warning: convex_on.comp -> ConvexOn.comp is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align convex_on.comp ConvexOn.compₓ'. -/
theorem ConvexOn.comp (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
(hg' : MonotoneOn g (f '' s)) : ConvexOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
@@ -151,6 +217,12 @@ theorem ConvexOn.comp (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
hg.2 (mem_image_of_mem f hx) (mem_image_of_mem f hy) ha hb hab⟩
#align convex_on.comp ConvexOn.comp
+/- warning: concave_on.comp -> ConcaveOn.comp is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (MonotoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align concave_on.comp ConcaveOn.compₓ'. -/
theorem ConcaveOn.comp (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f)
(hg' : MonotoneOn g (f '' s)) : ConcaveOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
@@ -160,16 +232,34 @@ theorem ConcaveOn.comp (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f
hf.2 hx hy ha hb hab⟩
#align concave_on.comp ConcaveOn.comp
+/- warning: convex_on.comp_concave_on -> ConvexOn.comp_concaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align convex_on.comp_concave_on ConvexOn.comp_concaveOnₓ'. -/
theorem ConvexOn.comp_concaveOn (hg : ConvexOn 𝕜 (f '' s) g) (hf : ConcaveOn 𝕜 s f)
(hg' : AntitoneOn g (f '' s)) : ConvexOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg'
#align convex_on.comp_concave_on ConvexOn.comp_concaveOn
+/- warning: concave_on.comp_convex_on -> ConcaveOn.comp_convexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (ConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (ConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (ConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (AntitoneOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (ConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align concave_on.comp_convex_on ConcaveOn.comp_convexOnₓ'. -/
theorem ConcaveOn.comp_convexOn (hg : ConcaveOn 𝕜 (f '' s) g) (hf : ConvexOn 𝕜 s f)
(hg' : AntitoneOn g (f '' s)) : ConcaveOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg'
#align concave_on.comp_convex_on ConcaveOn.comp_convexOn
+/- warning: strict_convex_on.comp -> StrictConvexOn.comp is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.comp StrictConvexOn.compₓ'. -/
theorem StrictConvexOn.comp (hg : StrictConvexOn 𝕜 (f '' s) g) (hf : StrictConvexOn 𝕜 s f)
(hg' : StrictMonoOn g (f '' s)) (hf' : s.InjOn f) : StrictConvexOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -179,6 +269,12 @@ theorem StrictConvexOn.comp (hg : StrictConvexOn 𝕜 (f '' s) g) (hf : StrictCo
hg.2 (mem_image_of_mem f hx) (mem_image_of_mem f hy) (mt (hf' hx hy) hxy) ha hb hab⟩
#align strict_convex_on.comp StrictConvexOn.comp
+/- warning: strict_concave_on.comp -> StrictConcaveOn.comp is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictMonoOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.comp StrictConcaveOn.compₓ'. -/
theorem StrictConcaveOn.comp (hg : StrictConcaveOn 𝕜 (f '' s) g) (hf : StrictConcaveOn 𝕜 s f)
(hg' : StrictMonoOn g (f '' s)) (hf' : s.InjOn f) : StrictConcaveOn 𝕜 s (g ∘ f) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -188,12 +284,24 @@ theorem StrictConcaveOn.comp (hg : StrictConcaveOn 𝕜 (f '' s) g) (hf : Strict
hf.2 hx hy hxy ha hb hab⟩
#align strict_concave_on.comp StrictConcaveOn.comp
+/- warning: strict_convex_on.comp_strict_concave_on -> StrictConvexOn.comp_strictConcaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConvexOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConcaveOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConvexOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.comp_strict_concave_on StrictConvexOn.comp_strictConcaveOnₓ'. -/
theorem StrictConvexOn.comp_strictConcaveOn (hg : StrictConvexOn 𝕜 (f '' s) g)
(hf : StrictConcaveOn 𝕜 s f) (hg' : StrictAntiOn g (f '' s)) (hf' : s.InjOn f) :
StrictConvexOn 𝕜 s (g ∘ f) :=
hg.dual.comp hf hg' hf'
#align strict_convex_on.comp_strict_concave_on StrictConvexOn.comp_strictConcaveOn
+/- warning: strict_concave_on.comp_strict_convex_on -> StrictConcaveOn.comp_strictConvexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {α : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommMonoid.{u3} α] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : SMul.{u1, u3} 𝕜 α] [_inst_8 : SMul.{u1, u4} 𝕜 β] {s : Set.{u2} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u1, u4, u3} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u4} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u2, u4} E β f s) g) -> (StrictConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u4, u3} β α (PartialOrder.toPreorder.{u4} β (OrderedAddCommMonoid.toPartialOrder.{u4} β _inst_5)) (PartialOrder.toPreorder.{u3} α (OrderedAddCommMonoid.toPartialOrder.{u3} α _inst_4)) g (Set.image.{u2, u4} E β f s)) -> (Set.InjOn.{u2, u4} E β f s) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u2, succ u4, succ u3} E β α g f))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u1}} {α : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u4} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_4 : OrderedAddCommMonoid.{u2} α] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u4, u1} 𝕜 E] [_inst_7 : SMul.{u4, u2} 𝕜 α] [_inst_8 : SMul.{u4, u3} 𝕜 β] {s : Set.{u1} E} {f : E -> β} {g : β -> α}, (StrictConcaveOn.{u4, u3, u2} 𝕜 β α _inst_1 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_4 _inst_8 _inst_7 (Set.image.{u1, u3} E β f s) g) -> (StrictConvexOn.{u4, u1, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 _inst_8 s f) -> (StrictAntiOn.{u3, u2} β α (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5)) (PartialOrder.toPreorder.{u2} α (OrderedAddCommMonoid.toPartialOrder.{u2} α _inst_4)) g (Set.image.{u1, u3} E β f s)) -> (Set.InjOn.{u1, u3} E β f s) -> (StrictConcaveOn.{u4, u1, u2} 𝕜 E α _inst_1 _inst_2 _inst_4 _inst_6 _inst_7 s (Function.comp.{succ u1, succ u3, succ u2} E β α g f))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.comp_strict_convex_on StrictConcaveOn.comp_strictConvexOnₓ'. -/
theorem StrictConcaveOn.comp_strictConvexOn (hg : StrictConcaveOn 𝕜 (f '' s) g)
(hf : StrictConvexOn 𝕜 s f) (hg' : StrictAntiOn g (f '' s)) (hf' : s.InjOn f) :
StrictConcaveOn 𝕜 s (g ∘ f) :=
@@ -206,6 +314,12 @@ section DistribMulAction
variable [SMul 𝕜 E] [DistribMulAction 𝕜 β] {s : Set E} {f g : E → β}
+/- warning: convex_on.add -> ConvexOn.add is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s g) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s g) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)))))) f g))
+Case conversion may be inaccurate. Consider using '#align convex_on.add ConvexOn.addₓ'. -/
theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
@@ -215,6 +329,12 @@ theorem ConvexOn.add (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
⟩
#align convex_on.add ConvexOn.add
+/- warning: concave_on.add -> ConcaveOn.add is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s g) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s g) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) _inst_7))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)))))) f g))
+Case conversion may be inaccurate. Consider using '#align concave_on.add ConcaveOn.addₓ'. -/
theorem ConcaveOn.add (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f + g) :=
hf.dual.add hg
#align concave_on.add ConcaveOn.add
@@ -225,20 +345,44 @@ section Module
variable [SMul 𝕜 E] [Module 𝕜 β] {s : Set E} {f : E → β}
+/- warning: convex_on_const -> convexOn_const is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (fun (x : E) => c))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (fun (x : E) => c))
+Case conversion may be inaccurate. Consider using '#align convex_on_const convexOn_constₓ'. -/
theorem convexOn_const (c : β) (hs : Convex 𝕜 s) : ConvexOn 𝕜 s fun x : E => c :=
⟨hs, fun x y _ _ a b _ _ hab => (Convex.combo_self hab c).ge⟩
#align convex_on_const convexOn_const
+/- warning: concave_on_const -> concaveOn_const is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (fun (x : E) => c))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} (c : β), (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (fun (x : E) => c))
+Case conversion may be inaccurate. Consider using '#align concave_on_const concaveOn_constₓ'. -/
theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun x : E => c :=
@convexOn_const _ _ βᵒᵈ _ _ _ _ _ _ c hs
#align concave_on_const concaveOn_const
+/- warning: convex_on_of_convex_epigraph -> convexOn_of_convex_epigraph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))))) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align convex_on_of_convex_epigraph convexOn_of_convex_epigraphₓ'. -/
theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 }) :
ConvexOn 𝕜 s f :=
⟨fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).1,
fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).2⟩
#align convex_on_of_convex_epigraph convexOn_of_convex_epigraph
+/- warning: concave_on_of_convex_hypograph -> concaveOn_of_convex_hypograph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))))) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align concave_on_of_convex_hypograph concaveOn_of_convex_hypographₓ'. -/
theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 }) :
ConcaveOn 𝕜 s f :=
@convexOn_of_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ h
@@ -250,6 +394,12 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+/- warning: convex_on.convex_le -> ConvexOn.convex_le is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f x) r))))
+Case conversion may be inaccurate. Consider using '#align convex_on.convex_le ConvexOn.convex_leₓ'. -/
theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | f x ≤ r }) :=
fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha hb hab,
@@ -261,10 +411,22 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_le ConvexOn.convex_le
+/- warning: concave_on.convex_ge -> ConcaveOn.convex_ge is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_6 (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) r (f x)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.convex_ge ConcaveOn.convex_geₓ'. -/
theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r ≤ f x }) :=
hf.dual.convex_le r
#align concave_on.convex_ge ConcaveOn.convex_ge
+/- warning: convex_on.convex_epigraph -> ConvexOn.convex_epigraph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.convex_epigraph ConvexOn.convex_epigraphₓ'. -/
theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 } :=
by
@@ -276,16 +438,34 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
+/- warning: concave_on.convex_hypograph -> ConcaveOn.convex_hypograph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
+Case conversion may be inaccurate. Consider using '#align concave_on.convex_hypograph ConcaveOn.convex_hypographₓ'. -/
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
hf.dual.convex_epigraph
#align concave_on.convex_hypograph ConcaveOn.convex_hypograph
+/- warning: convex_on_iff_convex_epigraph -> convexOn_iff_convex_epigraph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
+Case conversion may be inaccurate. Consider using '#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraphₓ'. -/
theorem convexOn_iff_convex_epigraph :
ConvexOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 } :=
⟨ConvexOn.convex_epigraph, convexOn_of_convex_epigraph⟩
#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraph
+/- warning: concave_on_iff_convex_hypograph -> concaveOn_iff_convex_hypograph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : SMul.{u1, u2} 𝕜 E] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)) (Prod.smul.{u1, u2, u3} 𝕜 E β _inst_6 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : SMul.{u3, u2} 𝕜 E] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)) (Prod.smul.{u3, u2, u1} 𝕜 E β _inst_6 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
+Case conversion may be inaccurate. Consider using '#align concave_on_iff_convex_hypograph concaveOn_iff_convex_hypographₓ'. -/
theorem concaveOn_iff_convex_hypograph :
ConcaveOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
@convexOn_iff_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ f
@@ -297,6 +477,12 @@ section Module
variable [Module 𝕜 E] [SMul 𝕜 β] {s : Set E} {f : E → β}
+/- warning: convex_on.translate_right -> ConvexOn.translate_right is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
+Case conversion may be inaccurate. Consider using '#align convex_on.translate_right ConvexOn.translate_rightₓ'. -/
/-- Right translation preserves convexity. -/
theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
ConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
@@ -308,18 +494,36 @@ theorem ConvexOn.translate_right (hf : ConvexOn 𝕜 s f) (c : E) :
⟩
#align convex_on.translate_right ConvexOn.translate_right
+/- warning: concave_on.translate_right -> ConcaveOn.translate_right is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z)))
+Case conversion may be inaccurate. Consider using '#align concave_on.translate_right ConcaveOn.translate_rightₓ'. -/
/-- Right translation preserves concavity. -/
theorem ConcaveOn.translate_right (hf : ConcaveOn 𝕜 s f) (c : E) :
ConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
hf.dual.translate_right _
#align concave_on.translate_right ConcaveOn.translate_right
+/- warning: convex_on.translate_left -> ConvexOn.translate_left is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
+Case conversion may be inaccurate. Consider using '#align convex_on.translate_left ConvexOn.translate_leftₓ'. -/
/-- Left translation preserves convexity. -/
theorem ConvexOn.translate_left (hf : ConvexOn 𝕜 s f) (c : E) :
ConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align convex_on.translate_left ConvexOn.translate_left
+/- warning: concave_on.translate_left -> ConcaveOn.translate_left is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 s f) -> (forall (c : E), ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_7 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) z c)))
+Case conversion may be inaccurate. Consider using '#align concave_on.translate_left ConcaveOn.translate_leftₓ'. -/
/-- Left translation preserves concavity. -/
theorem ConcaveOn.translate_left (hf : ConcaveOn 𝕜 s f) (c : E) :
ConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) :=
@@ -332,6 +536,12 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β]
+/- warning: convex_on_iff_forall_pos -> convexOn_iff_forall_pos is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x s) -> (forall {{y : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))))
+Case conversion may be inaccurate. Consider using '#align convex_on_iff_forall_pos convexOn_iff_forall_posₓ'. -/
theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -355,6 +565,12 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
+/- warning: concave_on_iff_forall_pos -> concaveOn_iff_forall_pos is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (forall {{x : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) x s) -> (forall {{y : E}}, (Membership.mem.{u3, u3} E (Set.{u3} E) (Set.instMembershipSet.{u3} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))))
+Case conversion may be inaccurate. Consider using '#align concave_on_iff_forall_pos concaveOn_iff_forall_posₓ'. -/
theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -366,6 +582,12 @@ theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
@convexOn_iff_forall_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_forall_pos concaveOn_iff_forall_pos
+/- warning: convex_on_iff_pairwise_pos -> convexOn_iff_pairwise_pos is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y)))))))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u3} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y)))))))
+Case conversion may be inaccurate. Consider using '#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_posₓ'. -/
theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -381,6 +603,12 @@ theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
exact h hx hy hxy ha hb hab
#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_pos
+/- warning: concave_on_iff_pairwise_pos -> concaveOn_iff_pairwise_pos is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) (And (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u2} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y)))))))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, Iff (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) (And (Convex.{u2, u3} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) s) (Set.Pairwise.{u3} E s (fun (x : E) (y : E) => forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) a) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (OrderedSemiring.toPartialOrder.{u2} 𝕜 _inst_1))) (OfNat.ofNat.{u2} 𝕜 0 (Zero.toOfNat0.{u2} 𝕜 (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) b) -> (Eq.{succ u2} 𝕜 (HAdd.hAdd.{u2, u2, u2} 𝕜 𝕜 𝕜 (instHAdd.{u2} 𝕜 (Distrib.toAdd.{u2} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u2} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} 𝕜 (Semiring.toNonAssocSemiring.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u2} 𝕜 1 (One.toOfNat1.{u2} 𝕜 (Semiring.toOne.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u2, u1, u1} 𝕜 β β (instHSMul.{u2, u1} 𝕜 β (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u3, u3, u3} E E E (instHAdd.{u3} E (AddZeroClass.toAdd.{u3} E (AddMonoid.toAddZeroClass.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)))) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u2, u3, u3} 𝕜 E E (instHSMul.{u2, u3} 𝕜 E (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6))))) b y)))))))
+Case conversion may be inaccurate. Consider using '#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_posₓ'. -/
theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -389,22 +617,46 @@ theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
@convexOn_iff_pairwise_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_pos
+/- warning: linear_map.convex_on -> LinearMap.convexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
+Case conversion may be inaccurate. Consider using '#align linear_map.convex_on LinearMap.convexOnₓ'. -/
/-- A linear map is convex. -/
theorem LinearMap.convexOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConvexOn 𝕜 s f :=
⟨hs, fun _ _ _ _ _ _ _ _ _ => by rw [f.map_add, f.map_smul, f.map_smul]⟩
#align linear_map.convex_on LinearMap.convexOn
+/- warning: linear_map.concave_on -> LinearMap.concaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] (f : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7) => E -> β) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] (f : LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) {s : Set.{u2} E}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E β _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => β) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} 𝕜 𝕜 E β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) f))
+Case conversion may be inaccurate. Consider using '#align linear_map.concave_on LinearMap.concaveOnₓ'. -/
/-- A linear map is concave. -/
theorem LinearMap.concaveOn (f : E →ₗ[𝕜] β) {s : Set E} (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s f :=
⟨hs, fun _ _ _ _ _ _ _ _ _ => by rw [f.map_add, f.map_smul, f.map_smul]⟩
#align linear_map.concave_on LinearMap.concaveOn
+/- warning: strict_convex_on.convex_on -> StrictConvexOn.convexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, (StrictConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (ConvexOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.convex_on StrictConvexOn.convexOnₓ'. -/
theorem StrictConvexOn.convexOn {s : Set E} {f : E → β} (hf : StrictConvexOn 𝕜 s f) :
ConvexOn 𝕜 s f :=
convexOn_iff_pairwise_pos.mpr
⟨hf.1, fun x hx y hy hxy a b ha hb hab => (hf.2 hx hy hxy ha hb hab).le⟩
#align strict_convex_on.convex_on StrictConvexOn.convexOn
+/- warning: strict_concave_on.concave_on -> StrictConcaveOn.concaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {E : Type.{u3}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u2} 𝕜] [_inst_2 : AddCommMonoid.{u3} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] {s : Set.{u3} E} {f : E -> β}, (StrictConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (ConcaveOn.{u2, u3, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u2, u3} 𝕜 E (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u3} 𝕜 E (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u3} 𝕜 E (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u3} E (AddCommMonoid.toAddMonoid.{u3} E _inst_2)) (Module.toMulActionWithZero.{u2, u3} 𝕜 E (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (MonoidWithZero.toZero.{u2} 𝕜 (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (OrderedSemiring.toSemiring.{u2} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.concave_on StrictConcaveOn.concaveOnₓ'. -/
theorem StrictConcaveOn.concaveOn {s : Set E} {f : E → β} (hf : StrictConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s f :=
hf.dual.ConvexOn
@@ -414,6 +666,12 @@ section OrderedSMul
variable [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+/- warning: strict_convex_on.convex_lt -> StrictConvexOn.convex_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f x) r) s))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f x) r))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.convex_lt StrictConvexOn.convex_ltₓ'. -/
theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
Convex 𝕜 ({ x ∈ s | f x < r }) :=
convex_iff_pairwise_pos.2 fun x hx y hy hxy a b ha hb hab =>
@@ -426,6 +684,12 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
+/- warning: strict_concave_on.convex_gt -> StrictConcaveOn.convex_gt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) r (f x)) s))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 _inst_5 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) r (f x)))))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.convex_gt StrictConcaveOn.convex_gtₓ'. -/
theorem StrictConcaveOn.convex_gt (hf : StrictConcaveOn 𝕜 s f) (r : β) :
Convex 𝕜 ({ x ∈ s | r < f x }) :=
hf.dual.convex_lt r
@@ -437,6 +701,12 @@ section LinearOrder
variable [LinearOrder E] {s : Set E} {f : E → β}
+/- warning: linear_order.convex_on_of_lt -> LinearOrder.convexOn_of_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is convex, it suffices to
verify the inequality `f (a • x + b • y) ≤ a • f x + b • f y` only for `x < y` and positive `a`,
@@ -460,6 +730,12 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
+/- warning: linear_order.concave_on_of_lt -> LinearOrder.concaveOn_of_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is concave it suffices to
verify the inequality `a • f x + b • f y ≤ f (a • x + b • y)` for `x < y` and positive `a`, `b`. The
@@ -476,6 +752,12 @@ theorem LinearOrder.concaveOn_of_lt (hs : Convex 𝕜 s)
@LinearOrder.convexOn_of_lt _ _ βᵒᵈ _ _ _ _ _ _ s f hs hf
#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_lt
+/- warning: linear_order.strict_convex_on_of_lt -> LinearOrder.strictConvexOn_of_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))))))) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))))))) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly convex, it suffices
to verify the inequality `f (a • x + b • y) < a • f x + b • f y` for `x < y` and positive `a`, `b`.
@@ -498,6 +780,12 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
+/- warning: linear_order.strict_concave_on_of_lt -> LinearOrder.strictConcaveOn_of_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u3} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (LinearOrder.toLattice.{u2} E _inst_8))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_5))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5))))) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) a (f x)) (SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) b y))))))) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_5) _inst_7)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_5 : OrderedAddCommMonoid.{u1} β] [_inst_6 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5)] [_inst_8 : LinearOrder.{u2} E] {s : Set.{u2} E} {f : E -> β}, (Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) s) -> (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u2} E (Preorder.toLT.{u2} E (PartialOrder.toPreorder.{u2} E (SemilatticeInf.toPartialOrder.{u2} E (Lattice.toSemilatticeInf.{u2} E (DistribLattice.toLattice.{u2} E (instDistribLattice.{u2} E _inst_8)))))) x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_5))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) a (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7))))) b (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6))))) b y))))))) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_5) _inst_7)))) s f)
+Case conversion may be inaccurate. Consider using '#align linear_order.strict_concave_on_of_lt LinearOrder.strictConcaveOn_of_ltₓ'. -/
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly concave it suffices
to verify the inequality `a • f x + b • f y < f (a • x + b • y)` for `x < y` and positive `a`, `b`.
@@ -522,6 +810,12 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
+/- warning: convex_on.comp_linear_map -> ConvexOn.comp_linearMap is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConvexOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConvexOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+Case conversion may be inaccurate. Consider using '#align convex_on.comp_linear_map ConvexOn.comp_linearMapₓ'. -/
/-- If `g` is convex on `s`, so is `(f ∘ g)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
ConvexOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -532,6 +826,12 @@ theorem ConvexOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConvexOn 𝕜 s
⟩
#align convex_on.comp_linear_map ConvexOn.comp_linearMap
+/- warning: concave_on.comp_linear_map -> ConcaveOn.comp_linearMap is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : AddCommMonoid.{u3} F] [_inst_5 : OrderedAddCommMonoid.{u4} β] [_inst_6 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u1, u4} 𝕜 β] {f : F -> β} {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F _inst_3))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u1, u2, u4} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) (fun (_x : LinearMap.{u1, u1, u2, u3} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) => E -> F) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))) g)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u1}} {F : Type.{u4}} {β : Type.{u2}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u1} E] [_inst_3 : AddCommMonoid.{u4} F] [_inst_5 : OrderedAddCommMonoid.{u2} β] [_inst_6 : Module.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_7 : Module.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3] [_inst_8 : SMul.{u3, u2} 𝕜 β] {f : F -> β} {s : Set.{u4} F}, (ConcaveOn.{u3, u4, u2} 𝕜 F β _inst_1 _inst_3 _inst_5 (SMulZeroClass.toSMul.{u3, u4} 𝕜 F (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u4} 𝕜 F (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u4} 𝕜 F (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u4} F (AddCommMonoid.toAddMonoid.{u4} F _inst_3)) (Module.toMulActionWithZero.{u3, u4} 𝕜 F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_3 _inst_7)))) _inst_8 s f) -> (forall (g : LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7), ConcaveOn.{u3, u1, u2} 𝕜 E β _inst_1 _inst_2 _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 E (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} E (AddCommMonoid.toAddMonoid.{u1} E _inst_2)) (Module.toMulActionWithZero.{u3, u1} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_6)))) _inst_8 (Set.preimage.{u1, u4} E F (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g) s) (Function.comp.{succ u1, succ u4, succ u2} E F β f (FunLike.coe.{max (succ u1) (succ u4), succ u1, succ u4} (LinearMap.{u3, u3, u1, u4} 𝕜 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) E F _inst_2 _inst_3 _inst_6 _inst_7) E (fun (_x : E) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : E) => F) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, u4} 𝕜 𝕜 E F (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))) g)))
+Case conversion may be inaccurate. Consider using '#align concave_on.comp_linear_map ConcaveOn.comp_linearMapₓ'. -/
/-- If `g` is concave on `s`, so is `(g ∘ f)` on `f ⁻¹' s` for a linear `f`. -/
theorem ConcaveOn.comp_linearMap {f : F → β} {s : Set F} (hf : ConcaveOn 𝕜 s f) (g : E →ₗ[𝕜] F) :
ConcaveOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -550,6 +850,12 @@ section DistribMulAction
variable [SMul 𝕜 E] [DistribMulAction 𝕜 β] {s : Set E} {f g : E → β}
+/- warning: strict_convex_on.add_convex_on -> StrictConvexOn.add_convexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.add_convex_on StrictConvexOn.add_convexOnₓ'. -/
theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -560,11 +866,23 @@ theorem StrictConvexOn.add_convexOn (hf : StrictConvexOn 𝕜 s f) (hg : ConvexO
⟩
#align strict_convex_on.add_convex_on StrictConvexOn.add_convexOn
+/- warning: convex_on.add_strict_convex_on -> ConvexOn.add_strictConvexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
+Case conversion may be inaccurate. Consider using '#align convex_on.add_strict_convex_on ConvexOn.add_strictConvexOnₓ'. -/
theorem ConvexOn.add_strictConvexOn (hf : ConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
add_comm g f ▸ hg.add_convexOn hf
#align convex_on.add_strict_convex_on ConvexOn.add_strictConvexOn
+/- warning: strict_convex_on.add -> StrictConvexOn.add is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.add StrictConvexOn.addₓ'. -/
theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f + g) :=
⟨hf.1, fun x hx y hy hxy a b ha hb hab =>
@@ -575,16 +893,34 @@ theorem StrictConvexOn.add (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
⟩
#align strict_convex_on.add StrictConvexOn.add
+/- warning: strict_concave_on.add_concave_on -> StrictConcaveOn.add_concaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.add_concave_on StrictConcaveOn.add_concaveOnₓ'. -/
theorem StrictConcaveOn.add_concaveOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add_convexOn hg.dual
#align strict_concave_on.add_concave_on StrictConcaveOn.add_concaveOn
+/- warning: concave_on.add_strict_concave_on -> ConcaveOn.add_strictConcaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
+Case conversion may be inaccurate. Consider using '#align concave_on.add_strict_concave_on ConcaveOn.add_strictConcaveOnₓ'. -/
theorem ConcaveOn.add_strictConcaveOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add_strictConvexOn hg.dual
#align concave_on.add_strict_concave_on ConcaveOn.add_strictConcaveOn
+/- warning: strict_concave_on.add -> StrictConcaveOn.add is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))) (DistribSMul.toSmulZeroClass.{u1, u3} 𝕜 β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4))))) (DistribMulAction.toDistribSMul.{u1, u3} 𝕜 β (MonoidWithZero.toMonoid.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u3} (E -> β) (Pi.instAdd.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddRightCancelMonoid.toAddMonoid.{u3} β (AddCancelMonoid.toAddRightCancelMonoid.{u3} β (AddCancelCommMonoid.toAddCancelMonoid.{u3} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u3} β _inst_4)))))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : DistribMulAction.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (DistribSMul.toSMulZeroClass.{u3, u1} 𝕜 β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4))))) (DistribMulAction.toDistribSMul.{u3, u1} 𝕜 β (MonoidWithZero.toMonoid.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) _inst_6))) s (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHAdd.{max u2 u1} (E -> β) (Pi.instAdd.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddRightCancelMonoid.toAddMonoid.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.add StrictConcaveOn.addₓ'. -/
theorem StrictConcaveOn.add (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f + g) :=
hf.dual.add hg
@@ -596,6 +932,12 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+/- warning: convex_on.convex_lt -> ConvexOn.convex_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f x) r) s))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f x) r))))
+Case conversion may be inaccurate. Consider using '#align convex_on.convex_lt ConvexOn.convex_ltₓ'. -/
theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | f x < r }) :=
convex_iff_forall_pos.2 fun x hx y hy a b ha hb hab =>
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
@@ -608,10 +950,22 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_lt ConvexOn.convex_lt
+/- warning: concave_on.convex_gt -> ConcaveOn.convex_gt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (Sep.sep.{u2, u2} E (Set.{u2} E) (Set.hasSep.{u2} E) (fun (x : E) => LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) r (f x)) s))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (r : β), Convex.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (setOf.{u2} E (fun (x : E) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) r (f x)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.convex_gt ConcaveOn.convex_gtₓ'. -/
theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r < f x }) :=
hf.dual.convex_lt r
#align concave_on.convex_gt ConcaveOn.convex_gt
+/- warning: convex_on.open_segment_subset_strict_epigraph -> ConvexOn.openSegment_subset_strict_epigraph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β q)) (Prod.snd.{u2, u3} E β q))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u1} E β) (q : Prod.{u2, u1} E β), (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))) -> (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β q) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β q)) (Prod.snd.{u2, u1} E β q))) -> (HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} E β)) (Set.instHasSubsetSet.{max u2 u1} (Prod.{u2, u1} E β)) (openSegment.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p))))))
+Case conversion may be inaccurate. Consider using '#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraphₓ'. -/
theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ f p.1 < p.2) (hq : q.1 ∈ s ∧ f q.1 ≤ q.2) :
openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
@@ -625,18 +979,36 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
+/- warning: concave_on.open_segment_subset_strict_hypograph -> ConcaveOn.openSegment_subset_strict_hypograph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u3} E β) (q : Prod.{u2, u3} E β), (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))) -> (And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β q) s) (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β q) (f (Prod.fst.{u2, u3} E β q)))) -> (HasSubset.Subset.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} E β)) (Set.hasSubset.{max u2 u3} (Prod.{u2, u3} E β)) (openSegment.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p)))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall (p : Prod.{u2, u1} E β) (q : Prod.{u2, u1} E β), (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))) -> (And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β q) s) (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β q) (f (Prod.fst.{u2, u1} E β q)))) -> (HasSubset.Subset.{max u2 u1} (Set.{max u2 u1} (Prod.{u2, u1} E β)) (Set.instHasSubsetSet.{max u2 u1} (Prod.{u2, u1} E β)) (openSegment.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) p q) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p)))))))
+Case conversion may be inaccurate. Consider using '#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypographₓ'. -/
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ p.2 < f p.1) (hq : q.1 ∈ s ∧ q.2 ≤ f q.1) :
openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
hf.dual.openSegment_subset_strict_epigraph p q hp hq
#align concave_on.open_segment_subset_strict_hypograph ConcaveOn.openSegment_subset_strict_hypograph
+/- warning: convex_on.convex_strict_epigraph -> ConvexOn.convex_strict_epigraph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (f (Prod.fst.{u2, u3} E β p)) (Prod.snd.{u2, u3} E β p)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (f (Prod.fst.{u2, u1} E β p)) (Prod.snd.{u2, u1} E β p)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraphₓ'. -/
theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 < p.2 } :=
convex_iff_openSegment_subset.mpr fun p hp q hq =>
hf.openSegment_subset_strict_epigraph p q hp ⟨hq.1, hq.2.le⟩
#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraph
+/- warning: concave_on.convex_strict_hypograph -> ConcaveOn.convex_strict_hypograph is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6)))) s f) -> (Convex.{u1, max u2 u3} 𝕜 (Prod.{u2, u3} E β) _inst_1 (Prod.addCommMonoid.{u2, u3} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)) (Prod.smul.{u1, u2, u3} 𝕜 E β (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β _inst_4) _inst_6))))) (setOf.{max u2 u3} (Prod.{u2, u3} E β) (fun (p : Prod.{u2, u3} E β) => And (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) (Prod.fst.{u2, u3} E β p) s) (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β _inst_4))) (Prod.snd.{u2, u3} E β p) (f (Prod.fst.{u2, u3} E β p))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (Convex.{u3, max u2 u1} 𝕜 (Prod.{u2, u1} E β) _inst_1 (Prod.instAddCommMonoidSum.{u2, u1} E β _inst_2 (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)) (Prod.smul.{u3, u2, u1} 𝕜 E β (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))))) (setOf.{max u2 u1} (Prod.{u2, u1} E β) (fun (p : Prod.{u2, u1} E β) => And (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) (Prod.fst.{u2, u1} E β p) s) (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β _inst_4))) (Prod.snd.{u2, u1} E β p) (f (Prod.fst.{u2, u1} E β p))))))
+Case conversion may be inaccurate. Consider using '#align concave_on.convex_strict_hypograph ConcaveOn.convex_strict_hypographₓ'. -/
theorem ConcaveOn.convex_strict_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
hf.dual.convex_strict_epigraph
@@ -651,6 +1023,12 @@ section LinearOrderedAddCommMonoid
variable [LinearOrderedAddCommMonoid β] [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E}
{f g : E → β}
+/- warning: convex_on.sup -> ConvexOn.sup is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Sup.sup.{max u2 u3} (E -> β) (Pi.hasSup.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toHasSup.{u3} β (Lattice.toSemilatticeSup.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Sup.sup.{max u2 u1} (E -> β) (Pi.instSupForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align convex_on.sup ConvexOn.supₓ'. -/
/-- The pointwise maximum of convex functions is convex. -/
theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexOn 𝕜 s (f ⊔ g) :=
by
@@ -669,11 +1047,23 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
#align convex_on.sup ConvexOn.sup
+/- warning: concave_on.inf -> ConcaveOn.inf is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Inf.inf.{max u2 u3} (E -> β) (Pi.hasInf.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeInf.toHasInf.{u3} β (Lattice.toSemilatticeInf.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Inf.inf.{max u2 u1} (E -> β) (Pi.instInfForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => Lattice.toInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4))))) f g))
+Case conversion may be inaccurate. Consider using '#align concave_on.inf ConcaveOn.infₓ'. -/
/-- The pointwise minimum of concave functions is concave. -/
theorem ConcaveOn.inf (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
#align concave_on.inf ConcaveOn.inf
+/- warning: strict_convex_on.sup -> StrictConvexOn.sup is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Sup.sup.{max u2 u3} (E -> β) (Pi.hasSup.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toHasSup.{u3} β (Lattice.toSemilatticeSup.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Sup.sup.{max u2 u1} (E -> β) (Pi.instSupForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeSup.toSup.{u1} β (Lattice.toSemilatticeSup.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.sup StrictConvexOn.supₓ'. -/
/-- The pointwise maximum of strictly convex functions is strictly convex. -/
theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f ⊔ g) :=
@@ -693,12 +1083,24 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
)⟩
#align strict_convex_on.sup StrictConvexOn.sup
+/- warning: strict_concave_on.inf -> StrictConcaveOn.inf is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s (Inf.inf.{max u2 u3} (E -> β) (Pi.hasInf.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SemilatticeInf.toHasInf.{u3} β (Lattice.toSemilatticeInf.{u3} β (LinearOrder.toLattice.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s (Inf.inf.{max u2 u1} (E -> β) (Pi.instInfForAll.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => Lattice.toInf.{u1} β (DistribLattice.toLattice.{u1} β (instDistribLattice.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.inf StrictConcaveOn.infₓ'. -/
/-- The pointwise minimum of strictly concave functions is strictly concave. -/
theorem StrictConcaveOn.inf (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
#align strict_concave_on.inf StrictConcaveOn.inf
+/- warning: convex_on.le_on_segment' -> ConvexOn.le_on_segment' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)))))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment' ConvexOn.le_on_segment'ₓ'. -/
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s) {a b : 𝕜}
(ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : f (a • x + b • y) ≤ max (f x) (f y) :=
@@ -711,12 +1113,24 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
+/- warning: concave_on.ge_on_segment' -> ConcaveOn.ge_on_segment' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
+Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'ₓ'. -/
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : min (f x) (f y) ≤ f (a • x + b • y) :=
hf.dual.le_on_segment' hx hy ha hb hab
#align concave_on.ge_on_segment' ConcaveOn.ge_on_segment'
+/- warning: convex_on.le_on_segment -> ConvexOn.le_on_segment is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (segment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f z) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y))))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_on_segment ConvexOn.le_on_segmentₓ'. -/
/-- A convex function on a segment is upper-bounded by the max of its endpoints. -/
theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : f z ≤ max (f x) (f y) :=
@@ -724,12 +1138,24 @@ theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈
hz ▸ hf.le_on_segment' hx hy ha hb hab
#align convex_on.le_on_segment ConvexOn.le_on_segment
+/- warning: concave_on.ge_on_segment -> ConcaveOn.ge_on_segment is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (segment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (segment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f z)))
+Case conversion may be inaccurate. Consider using '#align concave_on.ge_on_segment ConcaveOn.ge_on_segmentₓ'. -/
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : min (f x) (f y) ≤ f z :=
hf.dual.le_on_segment hx hy hz
#align concave_on.ge_on_segment ConcaveOn.ge_on_segment
+/- warning: strict_convex_on.lt_on_open_segment' -> StrictConvexOn.lt_on_open_segment' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'ₓ'. -/
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -744,6 +1170,12 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
+/- warning: strict_concave_on.lt_on_open_segment' -> StrictConcaveOn.lt_on_open_segment' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'ₓ'. -/
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -752,6 +1184,12 @@ theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y
hf.dual.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_concave_on.lt_on_open_segment' StrictConcaveOn.lt_on_open_segment'
+/- warning: strict_convex_on.lt_on_open_segment -> StrictConvexOn.lt_on_openSegment is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (f z) (LinearOrder.max.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (f z) (Max.max.{u1} β (LinearOrder.toMax.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegmentₓ'. -/
/-- A strictly convex function on an open segment is strictly upper-bounded by the max of its
endpoints. -/
theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
@@ -760,6 +1198,12 @@ theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z :
hz ▸ hf.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegment
+/- warning: strict_concave_on.lt_on_open_segment -> StrictConcaveOn.lt_on_openSegment is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u3} β _inst_4)))) (LinearOrder.min.{u3} β (LinearOrderedAddCommMonoid.toLinearOrder.{u3} β _inst_4) (f x) (f y)) (f z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4)] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (LinearOrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_4) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β _inst_4)))) (Min.min.{u1} β (LinearOrder.toMin.{u1} β (LinearOrderedAddCommMonoid.toLinearOrder.{u1} β _inst_4)) (f x) (f y)) (f z)))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.lt_on_open_segment StrictConcaveOn.lt_on_openSegmentₓ'. -/
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_openSegment (hf : StrictConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
@@ -777,6 +1221,12 @@ section OrderedSMul
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
+/- warning: convex_on.le_left_of_right_le' -> ConvexOn.le_left_of_right_le' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f x))))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'ₓ'. -/
theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f y ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f x :=
@@ -790,12 +1240,24 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
+/- warning: concave_on.left_le_of_le_right' -> ConcaveOn.left_le_of_le_right' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))))))
+Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'ₓ'. -/
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f (a • x + b • y) ≤ f y) :
f x ≤ f (a • x + b • y) :=
hf.dual.le_left_of_right_le' hx hy ha hb hab hfy
#align concave_on.left_le_of_le_right' ConcaveOn.left_le_of_le_right'
+/- warning: convex_on.le_right_of_left_le' -> ConvexOn.le_right_of_left_le' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f y)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f y)))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'ₓ'. -/
theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f y := by
@@ -803,12 +1265,24 @@ theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
exact hf.le_left_of_right_le' hy hx hb ha hab hfx
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
+/- warning: concave_on.right_le_of_le_left' -> ConcaveOn.right_le_of_le_left' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y))) (f x)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_5 a x) (SMul.smul.{u1, u2} 𝕜 E _inst_5 b y)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y))) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_5) b y)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'ₓ'. -/
theorem ConcaveOn.right_le_of_le_left' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) ≤ f x) :
f y ≤ f (a • x + b • y) :=
hf.dual.le_right_of_left_le' hx hy ha hb hab hfx
#align concave_on.right_le_of_le_left' ConcaveOn.right_le_of_le_left'
+/- warning: convex_on.le_left_of_right_le -> ConvexOn.le_left_of_right_le is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_leₓ'. -/
theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y ≤ f z) : f z ≤ f x :=
by
@@ -816,11 +1290,23 @@ theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.le_left_of_right_le' hx hy ha hb.le hab hyz
#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_le
+/- warning: concave_on.left_le_of_le_right -> ConcaveOn.left_le_of_le_right is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)))
+Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right ConcaveOn.left_le_of_le_rightₓ'. -/
theorem ConcaveOn.left_le_of_le_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z ≤ f y) : f x ≤ f z :=
hf.dual.le_left_of_right_le hx hy hz hyz
#align concave_on.left_le_of_le_right ConcaveOn.left_le_of_le_right
+/- warning: convex_on.le_right_of_left_le -> ConvexOn.le_right_of_left_le is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_leₓ'. -/
theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x ≤ f z) : f z ≤ f y :=
by
@@ -828,6 +1314,12 @@ theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.le_right_of_left_le' hx hy ha.le hb hab hxz
#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_le
+/- warning: concave_on.right_le_of_le_left -> ConcaveOn.right_le_of_le_left is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 _inst_5 x y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)))
+Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left ConcaveOn.right_le_of_le_leftₓ'. -/
theorem ConcaveOn.right_le_of_le_left (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z ≤ f x) : f y ≤ f z :=
hf.dual.le_right_of_left_le hx hy hz hxz
@@ -839,6 +1331,12 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
+/- warning: convex_on.lt_left_of_right_lt' -> ConvexOn.lt_left_of_right_lt' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f x))))
+Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'ₓ'. -/
/- The following lemmas don't require `module 𝕜 E` if you add the hypothesis `x ≠ y`. At the time of
the writing, we decided the resulting lemmas wouldn't be useful. Feel free to reintroduce them. -/
theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -854,12 +1352,24 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
+/- warning: concave_on.left_lt_of_lt_right' -> ConcaveOn.left_lt_of_lt_right' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {a : 𝕜} {b : 𝕜}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))))))
+Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'ₓ'. -/
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f (a • x + b • y) < f y) :
f x < f (a • x + b • y) :=
hf.dual.lt_left_of_right_lt' hx hy ha hb hab hfy
#align concave_on.left_lt_of_lt_right' ConcaveOn.left_lt_of_lt_right'
+/- warning: convex_on.lt_right_of_left_lt' -> ConvexOn.lt_right_of_left_lt' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f y)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f y)))
+Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'ₓ'. -/
theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x < f (a • x + b • y)) :
f (a • x + b • y) < f y := by
@@ -867,12 +1377,24 @@ theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
exact hf.lt_left_of_right_lt' hy hx hb ha hab hfx
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
+/- warning: concave_on.lt_right_of_left_lt' -> ConcaveOn.lt_right_of_left_lt' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 _inst_1)))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))))) b) -> (Eq.{succ u1} 𝕜 (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u1} 𝕜 1 (OfNat.mk.{u1} 𝕜 1 (One.one.{u1} 𝕜 (AddMonoidWithOne.toOne.{u1} 𝕜 (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} 𝕜 (NonAssocSemiring.toAddCommMonoidWithOne.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))))))) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y))) (f x)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) a x) (SMul.smul.{u1, u2} 𝕜 E (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) b y)))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {a : 𝕜} {b : 𝕜}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 _inst_1))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) b) -> (Eq.{succ u3} 𝕜 (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} 𝕜 (Semiring.toNonAssocSemiring.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)))))) a b) (OfNat.ofNat.{u3} 𝕜 1 (One.toOfNat1.{u3} 𝕜 (Semiring.toOne.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))))) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y))) (f x)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) a x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5))))) b y)))))
+Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'ₓ'. -/
theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) < f x) :
f y < f (a • x + b • y) :=
hf.dual.lt_right_of_left_lt' hx hy ha hb hab hfx
#align concave_on.lt_right_of_left_lt' ConcaveOn.lt_right_of_left_lt'
+/- warning: convex_on.lt_left_of_right_lt -> ConvexOn.lt_left_of_right_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)))
+Case conversion may be inaccurate. Consider using '#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_ltₓ'. -/
theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f y < f z) : f z < f x :=
by
@@ -880,11 +1402,23 @@ theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.lt_left_of_right_lt' hx hy ha hb hab hyz
#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_lt
+/- warning: concave_on.left_lt_of_lt_right -> ConcaveOn.left_lt_of_lt_right is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)))
+Case conversion may be inaccurate. Consider using '#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_rightₓ'. -/
theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z < f y) : f x < f z :=
hf.dual.lt_left_of_right_lt hx hy hz hyz
#align concave_on.left_lt_of_lt_right ConcaveOn.left_lt_of_lt_right
+/- warning: convex_on.lt_right_of_left_lt -> ConvexOn.lt_right_of_left_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f y)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f x) (f z)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f y)))
+Case conversion may be inaccurate. Consider using '#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_ltₓ'. -/
theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f x < f z) : f z < f y :=
by
@@ -892,6 +1426,12 @@ theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.lt_right_of_left_lt' hx hy ha hb hab hxz
#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_lt
+/- warning: concave_on.lt_right_of_left_lt -> ConcaveOn.lt_right_of_left_lt is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u3} β] [_inst_5 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))] [_inst_7 : OrderedSMul.{u1, u3} 𝕜 β _inst_1 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) z (openSegment.{u1, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedCancelAddCommMonoid.toPartialOrder.{u3} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u3} β _inst_4)))) (f y) (f z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_5 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] [_inst_7 : OrderedSMul.{u3, u1} 𝕜 β _inst_1 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_4)) (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (forall {x : E} {y : E} {z : E}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) z (openSegment.{u3, u2} 𝕜 E _inst_1 _inst_2 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddMonoid.toZero.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_5)))) x y)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f z) (f x)) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_4)))) (f y) (f z)))
+Case conversion may be inaccurate. Consider using '#align concave_on.lt_right_of_left_lt ConcaveOn.lt_right_of_left_ltₓ'. -/
theorem ConcaveOn.lt_right_of_left_lt (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z < f x) : f y < f z :=
hf.dual.lt_right_of_left_lt hx hy hz hxz
@@ -905,6 +1445,12 @@ section OrderedAddCommGroup
variable [OrderedAddCommGroup β] [SMul 𝕜 E] [Module 𝕜 β] {s : Set E} {f g : E → β}
+/- warning: neg_convex_on_iff -> neg_convexOn_iff is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
+Case conversion may be inaccurate. Consider using '#align neg_convex_on_iff neg_convexOn_iffₓ'. -/
/-- A function `-f` is convex iff `f` is concave. -/
@[simp]
theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
@@ -921,12 +1467,24 @@ theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f :=
exact h hx hy ha hb hab
#align neg_convex_on_iff neg_convexOn_iff
+/- warning: neg_concave_on_iff -> neg_concaveOn_iff is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
+Case conversion may be inaccurate. Consider using '#align neg_concave_on_iff neg_concaveOn_iffₓ'. -/
/-- A function `-f` is concave iff `f` is convex. -/
@[simp]
theorem neg_concaveOn_iff : ConcaveOn 𝕜 s (-f) ↔ ConvexOn 𝕜 s f := by
rw [← neg_convexOn_iff, neg_neg f]
#align neg_concave_on_iff neg_concaveOn_iff
+/- warning: neg_strict_convex_on_iff -> neg_strictConvexOn_iff is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
+Case conversion may be inaccurate. Consider using '#align neg_strict_convex_on_iff neg_strictConvexOn_iffₓ'. -/
/-- A function `-f` is strictly convex iff `f` is strictly concave. -/
@[simp]
theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn 𝕜 s f :=
@@ -943,57 +1501,135 @@ theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn
exact h hx hy hxy ha hb hab
#align neg_strict_convex_on_iff neg_strictConvexOn_iff
+/- warning: neg_strict_concave_on_iff -> neg_strictConcaveOn_iff is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f)) (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f)
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f)) (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f)
+Case conversion may be inaccurate. Consider using '#align neg_strict_concave_on_iff neg_strictConcaveOn_iffₓ'. -/
/-- A function `-f` is strictly concave iff `f` is strictly convex. -/
@[simp]
theorem neg_strictConcaveOn_iff : StrictConcaveOn 𝕜 s (-f) ↔ StrictConvexOn 𝕜 s f := by
rw [← neg_strictConvexOn_iff, neg_neg f]
#align neg_strict_concave_on_iff neg_strictConcaveOn_iff
+/- warning: concave_on.neg -> ConcaveOn.neg is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
+Case conversion may be inaccurate. Consider using '#align concave_on.neg ConcaveOn.negₓ'. -/
alias neg_convexOn_iff ↔ _ ConcaveOn.neg
#align concave_on.neg ConcaveOn.neg
+/- warning: convex_on.neg -> ConvexOn.neg is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
+Case conversion may be inaccurate. Consider using '#align convex_on.neg ConvexOn.negₓ'. -/
alias neg_concaveOn_iff ↔ _ ConvexOn.neg
#align convex_on.neg ConvexOn.neg
+/- warning: strict_concave_on.neg -> StrictConcaveOn.neg is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.neg StrictConcaveOn.negₓ'. -/
alias neg_strictConvexOn_iff ↔ _ StrictConcaveOn.neg
#align strict_concave_on.neg StrictConcaveOn.neg
+/- warning: strict_convex_on.neg -> StrictConvexOn.neg is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u3} (E -> β) (Pi.instNeg.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasNeg.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) f))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (Neg.neg.{max u2 u1} (E -> β) (Pi.instNeg.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => NegZeroClass.toNeg.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4))))))) f))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.neg StrictConvexOn.negₓ'. -/
alias neg_strictConcaveOn_iff ↔ _ StrictConvexOn.neg
#align strict_convex_on.neg StrictConvexOn.neg
+/- warning: convex_on.sub -> ConvexOn.sub is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align convex_on.sub ConvexOn.subₓ'. -/
theorem ConvexOn.sub (hf : ConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align convex_on.sub ConvexOn.sub
+/- warning: concave_on.sub -> ConcaveOn.sub is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align concave_on.sub ConcaveOn.subₓ'. -/
theorem ConcaveOn.sub (hf : ConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align concave_on.sub ConcaveOn.sub
+/- warning: strict_convex_on.sub -> StrictConvexOn.sub is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.sub StrictConvexOn.subₓ'. -/
theorem StrictConvexOn.sub (hf : StrictConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_convex_on.sub StrictConvexOn.sub
+/- warning: strict_concave_on.sub -> StrictConcaveOn.sub is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.sub StrictConcaveOn.subₓ'. -/
theorem StrictConcaveOn.sub (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_concave_on.sub StrictConcaveOn.sub
+/- warning: convex_on.sub_strict_concave_on -> ConvexOn.sub_strictConcaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOnₓ'. -/
theorem ConvexOn.sub_strictConcaveOn (hf : ConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConvexOn hg.neg
#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOn
+/- warning: concave_on.sub_strict_convex_on -> ConcaveOn.sub_strictConvexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOnₓ'. -/
theorem ConcaveOn.sub_strictConvexOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConcaveOn hg.neg
#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOn
+/- warning: strict_convex_on.sub_concave_on -> StrictConvexOn.sub_concaveOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOnₓ'. -/
theorem StrictConvexOn.sub_concaveOn (hf : StrictConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_convexOn hg.neg
#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOn
+/- warning: strict_concave_on.sub_convex_on -> StrictConcaveOn.sub_convexOn is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u3} β] [_inst_5 : SMul.{u1, u2} 𝕜 E] [_inst_6 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u3} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u3} β _inst_4)) _inst_5 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4))))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCommGroup.toAddCommMonoid.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u3, max u2 u3, max u2 u3} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u3} (E -> β) (Pi.instSub.{u2, u3} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toHasSub.{u3} β (AddGroup.toSubNegMonoid.{u3} β (AddCommGroup.toAddGroup.{u3} β (OrderedAddCommGroup.toAddCommGroup.{u3} β _inst_4)))))) f g))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_4 : OrderedAddCommGroup.{u1} β] [_inst_5 : SMul.{u3, u2} 𝕜 E] [_inst_6 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4))] {s : Set.{u2} E} {f : E -> β} {g : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s g) -> (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 _inst_2 (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_5 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (NegZeroClass.toZero.{u1} β (SubNegZeroMonoid.toNegZeroClass.{u1} β (SubtractionMonoid.toSubNegZeroMonoid.{u1} β (SubtractionCommMonoid.toSubtractionMonoid.{u1} β (AddCommGroup.toDivisionAddCommMonoid.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (OrderedAddCommGroup.toOrderedCancelAddCommMonoid.{u1} β _inst_4)) _inst_6)))) s (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (E -> β) (E -> β) (E -> β) (instHSub.{max u2 u1} (E -> β) (Pi.instSub.{u2, u1} E (fun (ᾰ : E) => β) (fun (i : E) => SubNegMonoid.toSub.{u1} β (AddGroup.toSubNegMonoid.{u1} β (AddCommGroup.toAddGroup.{u1} β (OrderedAddCommGroup.toAddCommGroup.{u1} β _inst_4)))))) f g))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.sub_convex_on StrictConcaveOn.sub_convexOnₓ'. -/
theorem StrictConcaveOn.sub_convexOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_concaveOn hg.neg
@@ -1008,6 +1644,12 @@ section AddCancelCommMonoid
variable [AddCancelCommMonoid E] [OrderedAddCommMonoid β] [Module 𝕜 E] [SMul 𝕜 β] {s : Set E}
{f : E → β}
+/- warning: strict_convex_on.translate_right -> StrictConvexOn.translate_right is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.translate_right StrictConvexOn.translate_rightₓ'. -/
/-- Right translation preserves strict convexity. -/
theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
StrictConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
@@ -1019,18 +1661,36 @@ theorem StrictConvexOn.translate_right (hf : StrictConvexOn 𝕜 s f) (c : E) :
⟩
#align strict_convex_on.translate_right StrictConvexOn.translate_right
+/- warning: strict_concave_on.translate_right -> StrictConcaveOn.translate_right is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z)))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.translate_right StrictConcaveOn.translate_rightₓ'. -/
/-- Right translation preserves strict concavity. -/
theorem StrictConcaveOn.translate_right (hf : StrictConcaveOn 𝕜 s f) (c : E) :
StrictConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => c + z) :=
hf.dual.translate_right _
#align strict_concave_on.translate_right StrictConcaveOn.translate_right
+/- warning: strict_convex_on.translate_left -> StrictConvexOn.translate_left is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConvexOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on.translate_left StrictConvexOn.translate_leftₓ'. -/
/-- Left translation preserves strict convexity. -/
theorem StrictConvexOn.translate_left (hf : StrictConvexOn 𝕜 s f) (c : E) :
StrictConvexOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
simpa only [add_comm] using hf.translate_right _
#align strict_convex_on.translate_left StrictConvexOn.translate_left
+/- warning: strict_concave_on.translate_left -> StrictConcaveOn.translate_left is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedSemiring.{u1} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : Module.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u1, u2, u3} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1)) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (OrderedSemiring.toSemiring.{u1} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u3} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedSemiring.{u3} 𝕜] [_inst_2 : AddCancelCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : Module.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2)] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, (StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 s f) -> (forall (c : E), StrictConcaveOn.{u3, u2, u1} 𝕜 E β _inst_1 (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_3 (SMulZeroClass.toSMul.{u3, u2} 𝕜 E (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (SMulWithZero.toSMulZeroClass.{u3, u2} 𝕜 E (MonoidWithZero.toZero.{u3} 𝕜 (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1))) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (MulActionWithZero.toSMulWithZero.{u3, u2} 𝕜 E (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1)) (AddRightCancelMonoid.toZero.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2))) (Module.toMulActionWithZero.{u3, u2} 𝕜 E (OrderedSemiring.toSemiring.{u3} 𝕜 _inst_1) (AddCancelCommMonoid.toAddCommMonoid.{u2} E _inst_2) _inst_4)))) _inst_5 (Set.preimage.{u2, u2} E E (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) c z) s) (Function.comp.{succ u2, succ u2, succ u1} E E β f (fun (z : E) => HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddRightCancelMonoid.toAddMonoid.{u2} E (AddCancelMonoid.toAddRightCancelMonoid.{u2} E (AddCancelCommMonoid.toAddCancelMonoid.{u2} E _inst_2)))))) z c)))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on.translate_left StrictConcaveOn.translate_leftₓ'. -/
/-- Left translation preserves strict concavity. -/
theorem StrictConcaveOn.translate_left (hf : StrictConcaveOn 𝕜 s f) (c : E) :
StrictConcaveOn 𝕜 ((fun z => c + z) ⁻¹' s) (f ∘ fun z => z + c) := by
@@ -1053,6 +1713,12 @@ section Module
variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f : E → β}
+/- warning: convex_on.smul -> ConvexOn.smul is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3)] [_inst_6 : OrderedSMul.{u3, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))))) c) -> (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s f) -> (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s (fun (x : E) => HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))))) c (f x)))
+Case conversion may be inaccurate. Consider using '#align convex_on.smul ConvexOn.smulₓ'. -/
theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : ConvexOn 𝕜 s fun x => c • f x :=
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
@@ -1062,6 +1728,12 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
⟩
#align convex_on.smul ConvexOn.smul
+/- warning: concave_on.smul -> ConcaveOn.smul is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : OrderedCommSemiring.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : Module.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)] [_inst_6 : OrderedSMul.{u1, u3} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommMonoid.toPartialOrder.{u1} 𝕜 (OrderedSemiring.toOrderedAddCommMonoid.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} 𝕜 (Semiring.toNonAssocSemiring.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))))))))) c) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u1, u2, u3} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) s (fun (x : E) => SMul.smul.{u1, u3} 𝕜 β (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 β (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)))))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1))) (AddZeroClass.toHasZero.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 β (OrderedSemiring.toSemiring.{u1} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u1} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3) _inst_5)))) c (f x)))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : OrderedCommSemiring.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : Module.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3)] [_inst_6 : OrderedSMul.{u3, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_3 (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))] {s : Set.{u2} E} {f : E -> β} {c : 𝕜}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (OrderedSemiring.toPartialOrder.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))))) c) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s f) -> (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1) _inst_2 _inst_3 _inst_4 (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5)))) s (fun (x : E) => HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β (SMulZeroClass.toSMul.{u3, u1} 𝕜 β (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (SMulWithZero.toSMulZeroClass.{u3, u1} 𝕜 β (CommMonoidWithZero.toZero.{u3} 𝕜 (CommSemiring.toCommMonoidWithZero.{u3} 𝕜 (OrderedCommSemiring.toCommSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (MulActionWithZero.toSMulWithZero.{u3, u1} 𝕜 β (Semiring.toMonoidWithZero.{u3} 𝕜 (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))) (Module.toMulActionWithZero.{u3, u1} 𝕜 β (OrderedSemiring.toSemiring.{u3} 𝕜 (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 _inst_1)) (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3) _inst_5))))) c (f x)))
+Case conversion may be inaccurate. Consider using '#align concave_on.smul ConcaveOn.smulₓ'. -/
theorem ConcaveOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s fun x => c • f x :=
hf.dual.smul hc
@@ -1085,6 +1757,12 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 F] [SMul 𝕜 β]
+/- warning: convex_on.comp_affine_map -> ConvexOn.comp_affineMap is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : OrderedAddCommMonoid.{u4} β] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_6 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] [_inst_7 : SMul.{u1, u4} 𝕜 β] {f : F -> β} (g : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) {s : Set.{u3} F}, (ConvexOn.{u1, u3, u4} 𝕜 F β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u1, u2, u4} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g)))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConvexOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConvexOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
+Case conversion may be inaccurate. Consider using '#align convex_on.comp_affine_map ConvexOn.comp_affineMapₓ'. -/
/-- If a function is convex on `s`, it remains convex when precomposed by an affine map. -/
theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConvexOn 𝕜 s f) :
ConvexOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -1096,6 +1774,12 @@ theorem ConvexOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F
⟩
#align convex_on.comp_affine_map ConvexOn.comp_affineMap
+/- warning: concave_on.comp_affine_map -> ConcaveOn.comp_affineMap is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {F : Type.{u3}} {β : Type.{u4}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommGroup.{u2} E] [_inst_3 : AddCommGroup.{u3} F] [_inst_4 : OrderedAddCommMonoid.{u4} β] [_inst_5 : Module.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)] [_inst_6 : Module.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)] [_inst_7 : SMul.{u1, u4} 𝕜 β] {f : F -> β} (g : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) {s : Set.{u3} F}, (ConcaveOn.{u1, u3, u4} 𝕜 F β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_4 (SMulZeroClass.toHasSmul.{u1, u3} 𝕜 F (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (SMulWithZero.toSmulZeroClass.{u1, u3} 𝕜 F (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (MulActionWithZero.toSMulWithZero.{u1, u3} 𝕜 F (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u3} F (AddMonoid.toAddZeroClass.{u3} F (AddCommMonoid.toAddMonoid.{u3} F (AddCommGroup.toAddCommMonoid.{u3} F _inst_3)))) (Module.toMulActionWithZero.{u1, u3} 𝕜 F (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u3} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u1, u2, u4} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_4 (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 E (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 E (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 E (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E (AddCommGroup.toAddCommMonoid.{u2} E _inst_2)))) (Module.toMulActionWithZero.{u1, u2} 𝕜 E (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (AddCommGroup.toAddCommMonoid.{u2} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u2, u3} E F (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g) s) (Function.comp.{succ u2, succ u3, succ u4} E F β f (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) (fun (_x : AffineMap.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) => E -> F) (AffineMap.hasCoeToFun.{u1, u2, u2, u3, u3} 𝕜 E E F F (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u2} E (AddCommGroup.toAddGroup.{u2} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u3} F (AddCommGroup.toAddGroup.{u3} F _inst_3))) g)))
+but is expected to have type
+ forall {𝕜 : Type.{u4}} {E : Type.{u3}} {F : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u4} 𝕜] [_inst_2 : AddCommGroup.{u3} E] [_inst_3 : AddCommGroup.{u2} F] [_inst_4 : OrderedAddCommMonoid.{u1} β] [_inst_5 : Module.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2)] [_inst_6 : Module.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3)] [_inst_7 : SMul.{u4, u1} 𝕜 β] {f : F -> β} (g : AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) {s : Set.{u2} F}, (ConcaveOn.{u4, u2, u1} 𝕜 F β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_4 (SMulZeroClass.toSMul.{u4, u2} 𝕜 F (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (SMulWithZero.toSMulZeroClass.{u4, u2} 𝕜 F (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (MulActionWithZero.toSMulWithZero.{u4, u2} 𝕜 F (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u2} F (SubNegZeroMonoid.toNegZeroClass.{u2} F (SubtractionMonoid.toSubNegZeroMonoid.{u2} F (SubtractionCommMonoid.toSubtractionMonoid.{u2} F (AddCommGroup.toDivisionAddCommMonoid.{u2} F _inst_3))))) (Module.toMulActionWithZero.{u4, u2} 𝕜 F (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u2} F _inst_3) _inst_6)))) _inst_7 s f) -> (ConcaveOn.{u4, u3, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u4} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_4 (SMulZeroClass.toSMul.{u4, u3} 𝕜 E (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (SMulWithZero.toSMulZeroClass.{u4, u3} 𝕜 E (CommMonoidWithZero.toZero.{u4} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u4} 𝕜 (Semifield.toCommGroupWithZero.{u4} 𝕜 (LinearOrderedSemifield.toSemifield.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (MulActionWithZero.toSMulWithZero.{u4, u3} 𝕜 E (Semiring.toMonoidWithZero.{u4} 𝕜 (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1)))))) (NegZeroClass.toZero.{u3} E (SubNegZeroMonoid.toNegZeroClass.{u3} E (SubtractionMonoid.toSubNegZeroMonoid.{u3} E (SubtractionCommMonoid.toSubtractionMonoid.{u3} E (AddCommGroup.toDivisionAddCommMonoid.{u3} E _inst_2))))) (Module.toMulActionWithZero.{u4, u3} 𝕜 E (StrictOrderedSemiring.toSemiring.{u4} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u4} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u4} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u4} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u4} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u3} E _inst_2) _inst_5)))) _inst_7 (Set.preimage.{u3, u2} E F (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g) s) (Function.comp.{succ u3, succ u2, succ u1} E F β f (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AffineMap.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) E (fun (_x : E) => (fun (a._@.Mathlib.LinearAlgebra.AffineSpace.AffineMap._hyg.1004 : E) => F) _x) (AffineMap.funLike.{u4, u3, u3, u2, u2} 𝕜 E E F F (StrictOrderedRing.toRing.{u4} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u4} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u4} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u4} 𝕜 _inst_1)))) _inst_2 _inst_5 (addGroupIsAddTorsor.{u3} E (AddCommGroup.toAddGroup.{u3} E _inst_2)) _inst_3 _inst_6 (addGroupIsAddTorsor.{u2} F (AddCommGroup.toAddGroup.{u2} F _inst_3))) g)))
+Case conversion may be inaccurate. Consider using '#align concave_on.comp_affine_map ConcaveOn.comp_affineMapₓ'. -/
/-- If a function is concave on `s`, it remains concave when precomposed by an affine map. -/
theorem ConcaveOn.comp_affineMap {f : F → β} (g : E →ᵃ[𝕜] F) {s : Set F} (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 (g ⁻¹' s) (f ∘ g) :=
@@ -1120,6 +1804,12 @@ section SMul
variable [SMul 𝕜 E] [SMul 𝕜 β] {s : Set E}
+/- warning: convex_on_iff_div -> convexOn_iff_div is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))))))))
+Case conversion may be inaccurate. Consider using '#align convex_on_iff_div convexOn_iff_divₓ'. -/
theorem convexOn_iff_div {f : E → β} :
ConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1143,6 +1833,12 @@ theorem convexOn_iff_div {f : E → β} :
simpa [hab, zero_lt_one] using h hx hy ha hb⟩
#align convex_on_iff_div convexOn_iff_div
+/- warning: concave_on_iff_div -> concaveOn_iff_div is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) -> (LE.le.{u3} β (Preorder.toLE.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (ConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LE.le.{u3} 𝕜 (Preorder.toLE.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))))))))
+Case conversion may be inaccurate. Consider using '#align concave_on_iff_div concaveOn_iff_divₓ'. -/
theorem concaveOn_iff_div {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1159,6 +1855,12 @@ theorem concaveOn_iff_div {f : E → β} :
@convexOn_iff_div _ _ βᵒᵈ _ _ _ _ _ _ _
#align concave_on_iff_div concaveOn_iff_div
+/- warning: strict_convex_on_iff_div -> strictConvexOn_iff_div is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConvexOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))))))))
+Case conversion may be inaccurate. Consider using '#align strict_convex_on_iff_div strictConvexOn_iff_divₓ'. -/
theorem strictConvexOn_iff_div {f : E → β} :
StrictConvexOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1183,6 +1885,12 @@ theorem strictConvexOn_iff_div {f : E → β} :
simpa [hab, zero_lt_one] using h hx hy hxy ha hb⟩
#align strict_convex_on_iff_div strictConvexOn_iff_div
+/- warning: strict_concave_on_iff_div -> strictConcaveOn_iff_div is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {E : Type.{u2}} {β : Type.{u3}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u3} β] [_inst_4 : SMul.{u1, u2} 𝕜 E] [_inst_5 : SMul.{u1, u3} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u1, u2, u3} 𝕜 E β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u1, u2} 𝕜 E (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) x s) -> (forall {{y : E}}, (Membership.Mem.{u2, u2} E (Set.{u2} E) (Set.hasMem.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) a) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) (OfNat.ofNat.{u1} 𝕜 0 (OfNat.mk.{u1} 𝕜 0 (Zero.zero.{u1} 𝕜 (MulZeroClass.toHasZero.{u1} 𝕜 (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u1} 𝕜 (Ring.toNonAssocRing.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))))))))) b) -> (LT.lt.{u3} β (Preorder.toLT.{u3} β (PartialOrder.toPreorder.{u3} β (OrderedAddCommMonoid.toPartialOrder.{u3} β _inst_3))) (HAdd.hAdd.{u3, u3, u3} β β β (instHAdd.{u3} β (AddZeroClass.toHasAdd.{u3} β (AddMonoid.toAddZeroClass.{u3} β (AddCommMonoid.toAddMonoid.{u3} β (OrderedAddCommMonoid.toAddCommMonoid.{u3} β _inst_3))))) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f x)) (SMul.smul.{u1, u3} 𝕜 β _inst_5 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toHasAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) a (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) x) (SMul.smul.{u1, u2} 𝕜 E _inst_4 (HDiv.hDiv.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHDiv.{u1} 𝕜 (DivInvMonoid.toHasDiv.{u1} 𝕜 (DivisionRing.toDivInvMonoid.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) b (HAdd.hAdd.{u1, u1, u1} 𝕜 𝕜 𝕜 (instHAdd.{u1} 𝕜 (Distrib.toHasAdd.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) a b)) y))))))))
+but is expected to have type
+ forall {𝕜 : Type.{u3}} {E : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u3} 𝕜] [_inst_2 : AddCommMonoid.{u2} E] [_inst_3 : OrderedAddCommMonoid.{u1} β] [_inst_4 : SMul.{u3, u2} 𝕜 E] [_inst_5 : SMul.{u3, u1} 𝕜 β] {s : Set.{u2} E} {f : E -> β}, Iff (StrictConcaveOn.{u3, u2, u1} 𝕜 E β (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_3 _inst_4 _inst_5 s f) (And (Convex.{u3, u2} 𝕜 E (OrderedCommSemiring.toOrderedSemiring.{u3} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u3} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u3} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))) _inst_2 _inst_4 s) (forall {{x : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) x s) -> (forall {{y : E}}, (Membership.mem.{u2, u2} E (Set.{u2} E) (Set.instMembershipSet.{u2} E) y s) -> (Ne.{succ u2} E x y) -> (forall {{a : 𝕜}} {{b : 𝕜}}, (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) a) -> (LT.lt.{u3} 𝕜 (Preorder.toLT.{u3} 𝕜 (PartialOrder.toPreorder.{u3} 𝕜 (StrictOrderedRing.toPartialOrder.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))) (OfNat.ofNat.{u3} 𝕜 0 (Zero.toOfNat0.{u3} 𝕜 (CommMonoidWithZero.toZero.{u3} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u3} 𝕜 (Semifield.toCommGroupWithZero.{u3} 𝕜 (LinearOrderedSemifield.toSemifield.{u3} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u3} 𝕜 _inst_1))))))) b) -> (LT.lt.{u1} β (Preorder.toLT.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedAddCommMonoid.toPartialOrder.{u1} β _inst_3))) (HAdd.hAdd.{u1, u1, u1} β β β (instHAdd.{u1} β (AddZeroClass.toAdd.{u1} β (AddMonoid.toAddZeroClass.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β _inst_3))))) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f x)) (HSMul.hSMul.{u3, u1, u1} 𝕜 β β (instHSMul.{u3, u1} 𝕜 β _inst_5) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) (f y))) (f (HAdd.hAdd.{u2, u2, u2} E E E (instHAdd.{u2} E (AddZeroClass.toAdd.{u2} E (AddMonoid.toAddZeroClass.{u2} E (AddCommMonoid.toAddMonoid.{u2} E _inst_2)))) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) a (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) x) (HSMul.hSMul.{u3, u2, u2} 𝕜 E E (instHSMul.{u3, u2} 𝕜 E _inst_4) (HDiv.hDiv.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHDiv.{u3} 𝕜 (LinearOrderedField.toDiv.{u3} 𝕜 _inst_1)) b (HAdd.hAdd.{u3, u3, u3} 𝕜 𝕜 𝕜 (instHAdd.{u3} 𝕜 (Distrib.toAdd.{u3} 𝕜 (NonUnitalNonAssocSemiring.toDistrib.{u3} 𝕜 (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u3} 𝕜 (NonAssocRing.toNonUnitalNonAssocRing.{u3} 𝕜 (Ring.toNonAssocRing.{u3} 𝕜 (StrictOrderedRing.toRing.{u3} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u3} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u3} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u3} 𝕜 _inst_1)))))))))) a b)) y))))))))
+Case conversion may be inaccurate. Consider using '#align strict_concave_on_iff_div strictConcaveOn_iff_divₓ'. -/
theorem strictConcaveOn_iff_div {f : E → β} :
StrictConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -1210,23 +1918,47 @@ section
variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module 𝕜 β] [OrderedSMul 𝕜 β]
{x y z : 𝕜} {s : Set 𝕜} {f : 𝕜 → β}
+/- warning: convex_on.le_right_of_left_le'' -> ConvexOn.le_right_of_left_le'' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f x) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f z))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''ₓ'. -/
theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y)
(hyz : y ≤ z) (h : f x ≤ f y) : f y ≤ f z :=
hyz.eq_or_lt.elim (fun hyz => (congr_arg f hyz).le) fun hyz =>
hf.le_right_of_left_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_right_of_left_le'' ConvexOn.le_right_of_left_le''
+/- warning: convex_on.le_left_of_right_le'' -> ConvexOn.le_left_of_right_le'' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConvexOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f z) (f y)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f x))
+Case conversion may be inaccurate. Consider using '#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''ₓ'. -/
theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x ≤ y)
(hyz : y < z) (h : f z ≤ f y) : f y ≤ f x :=
hxy.eq_or_lt.elim (fun hxy => (congr_arg f hxy).ge) fun hxy =>
hf.le_left_of_right_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''
+/- warning: concave_on.right_le_of_le_left'' -> ConcaveOn.right_le_of_le_left'' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f x)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f z) (f y))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f x)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f z) (f y))
+Case conversion may be inaccurate. Consider using '#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''ₓ'. -/
theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x < y) (hyz : y ≤ z) (h : f y ≤ f x) : f z ≤ f y :=
hf.dual.le_right_of_left_le'' hx hz hxy hyz h
#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''
+/- warning: concave_on.left_le_of_le_right'' -> ConcaveOn.left_le_of_le_right'' is a dubious translation:
+lean 3 declaration is
+ forall {𝕜 : Type.{u1}} {β : Type.{u2}} [_inst_1 : LinearOrderedField.{u1} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u2} β] [_inst_3 : Module.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))] [_inst_4 : OrderedSMul.{u1, u2} 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedAddCommMonoid.toAddCommMonoid.{u2} β (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u1} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u1, u1, u2} 𝕜 𝕜 β (StrictOrderedSemiring.toOrderedSemiring.{u1} 𝕜 (StrictOrderedRing.toStrictOrderedSemiring.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))) (AddCommGroup.toAddCommMonoid.{u1} 𝕜 (OrderedAddCommGroup.toAddCommGroup.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1)))))) (OrderedCancelAddCommMonoid.toOrderedAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) (Mul.toSMul.{u1} 𝕜 (Distrib.toHasMul.{u1} 𝕜 (Ring.toDistrib.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))) (SMulZeroClass.toHasSmul.{u1, u2} 𝕜 β (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (SMulWithZero.toSmulZeroClass.{u1, u2} 𝕜 β (MulZeroClass.toHasZero.{u1} 𝕜 (MulZeroOneClass.toMulZeroClass.{u1} 𝕜 (MonoidWithZero.toMulZeroOneClass.{u1} 𝕜 (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u1, u2} 𝕜 β (Semiring.toMonoidWithZero.{u1} 𝕜 (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1))))) (AddZeroClass.toHasZero.{u2} β (AddMonoid.toAddZeroClass.{u2} β (AddCommMonoid.toAddMonoid.{u2} β (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2))))) (Module.toMulActionWithZero.{u1, u2} 𝕜 β (Ring.toSemiring.{u1} 𝕜 (DivisionRing.toRing.{u1} 𝕜 (Field.toDivisionRing.{u1} 𝕜 (LinearOrderedField.toField.{u1} 𝕜 _inst_1)))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)) _inst_3)))) s f) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) x s) -> (Membership.Mem.{u1, u1} 𝕜 (Set.{u1} 𝕜) (Set.hasMem.{u1} 𝕜) z s) -> (LE.le.{u1} 𝕜 (Preorder.toLE.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) x y) -> (LT.lt.{u1} 𝕜 (Preorder.toLT.{u1} 𝕜 (PartialOrder.toPreorder.{u1} 𝕜 (OrderedAddCommGroup.toPartialOrder.{u1} 𝕜 (StrictOrderedRing.toOrderedAddCommGroup.{u1} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u1} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u1} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u1} 𝕜 _inst_1))))))) y z) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f y) (f z)) -> (LE.le.{u2} β (Preorder.toLE.{u2} β (PartialOrder.toPreorder.{u2} β (OrderedCancelAddCommMonoid.toPartialOrder.{u2} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u2} β _inst_2)))) (f x) (f y))
+but is expected to have type
+ forall {𝕜 : Type.{u2}} {β : Type.{u1}} [_inst_1 : LinearOrderedField.{u2} 𝕜] [_inst_2 : LinearOrderedCancelAddCommMonoid.{u1} β] [_inst_3 : Module.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))] [_inst_4 : OrderedSMul.{u2, u1} 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddMonoid.toZero.{u1} β (AddCommMonoid.toAddMonoid.{u1} β (OrderedAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3))] {x : 𝕜} {y : 𝕜} {z : 𝕜} {s : Set.{u2} 𝕜} {f : 𝕜 -> β}, (ConcaveOn.{u2, u2, u1} 𝕜 𝕜 β (OrderedCommSemiring.toOrderedSemiring.{u2} 𝕜 (StrictOrderedCommSemiring.toOrderedCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u2} 𝕜 (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (LinearOrderedAddCommMonoid.toOrderedAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toLinearOrderedAddCommMonoid.{u1} β _inst_2)) (Algebra.toSMul.{u2, u2} 𝕜 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))) (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (Algebra.id.{u2} 𝕜 (StrictOrderedCommSemiring.toCommSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toStrictOrderedCommSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (SMulZeroClass.toSMul.{u2, u1} 𝕜 β (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (SMulWithZero.toSMulZeroClass.{u2, u1} 𝕜 β (CommMonoidWithZero.toZero.{u2} 𝕜 (CommGroupWithZero.toCommMonoidWithZero.{u2} 𝕜 (Semifield.toCommGroupWithZero.{u2} 𝕜 (LinearOrderedSemifield.toSemifield.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (MulActionWithZero.toSMulWithZero.{u2, u1} 𝕜 β (Semiring.toMonoidWithZero.{u2} 𝕜 (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1)))))) (AddRightCancelMonoid.toZero.{u1} β (AddCancelMonoid.toAddRightCancelMonoid.{u1} β (AddCancelCommMonoid.toAddCancelMonoid.{u1} β (OrderedCancelAddCommMonoid.toCancelAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2))))) (Module.toMulActionWithZero.{u2, u1} 𝕜 β (StrictOrderedSemiring.toSemiring.{u2} 𝕜 (LinearOrderedSemiring.toStrictOrderedSemiring.{u2} 𝕜 (LinearOrderedCommSemiring.toLinearOrderedSemiring.{u2} 𝕜 (LinearOrderedSemifield.toLinearOrderedCommSemiring.{u2} 𝕜 (LinearOrderedField.toLinearOrderedSemifield.{u2} 𝕜 _inst_1))))) (OrderedCancelAddCommMonoid.toAddCommMonoid.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)) _inst_3)))) s f) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) x s) -> (Membership.mem.{u2, u2} 𝕜 (Set.{u2} 𝕜) (Set.instMembershipSet.{u2} 𝕜) z s) -> (LE.le.{u2} 𝕜 (Preorder.toLE.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) x y) -> (LT.lt.{u2} 𝕜 (Preorder.toLT.{u2} 𝕜 (PartialOrder.toPreorder.{u2} 𝕜 (StrictOrderedRing.toPartialOrder.{u2} 𝕜 (LinearOrderedRing.toStrictOrderedRing.{u2} 𝕜 (LinearOrderedCommRing.toLinearOrderedRing.{u2} 𝕜 (LinearOrderedField.toLinearOrderedCommRing.{u2} 𝕜 _inst_1)))))) y z) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f y) (f z)) -> (LE.le.{u1} β (Preorder.toLE.{u1} β (PartialOrder.toPreorder.{u1} β (OrderedCancelAddCommMonoid.toPartialOrder.{u1} β (LinearOrderedCancelAddCommMonoid.toOrderedCancelAddCommMonoid.{u1} β _inst_2)))) (f x) (f y))
+Case conversion may be inaccurate. Consider using '#align concave_on.left_le_of_le_right'' ConcaveOn.left_le_of_le_right''ₓ'. -/
theorem ConcaveOn.left_le_of_le_right'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x ≤ y) (hyz : y < z) (h : f y ≤ f z) : f x ≤ f y :=
hf.dual.le_left_of_right_le'' hx hz hxy hyz h
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -256,7 +256,7 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha hb hab
_ ≤ a • r + b • r :=
- add_le_add (smul_le_smul_of_nonneg hx.2 ha) (smul_le_smul_of_nonneg hy.2 hb)
+ (add_le_add (smul_le_smul_of_nonneg hx.2 ha) (smul_le_smul_of_nonneg hy.2 hb))
_ = r := Convex.combo_self hab r
⟩
#align convex_on.convex_le ConvexOn.convex_le
@@ -421,7 +421,7 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx.1 hy.1 hxy ha hb hab
_ ≤ a • r + b • r :=
- add_le_add (smul_lt_smul_of_pos hx.2 ha).le (smul_lt_smul_of_pos hy.2 hb).le
+ (add_le_add (smul_lt_smul_of_pos hx.2 ha).le (smul_lt_smul_of_pos hy.2 hb).le)
_ = r := Convex.combo_self hab r
⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
@@ -602,8 +602,8 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha.le hb.le hab
_ < a • r + b • r :=
- add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hx.2 ha)
- (smul_le_smul_of_nonneg hy.2.le hb.le)
+ (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hx.2 ha)
+ (smul_le_smul_of_nonneg hy.2.le hb.le))
_ = r := Convex.combo_self hab _
⟩
#align convex_on.convex_lt ConvexOn.convex_lt
@@ -705,8 +705,8 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
_ ≤ a • max (f x) (f y) + b • max (f x) (f y) :=
- add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha)
- (smul_le_smul_of_nonneg (le_max_right _ _) hb)
+ (add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha)
+ (smul_le_smul_of_nonneg (le_max_right _ _) hb))
_ = max (f x) (f y) := Convex.combo_self hab _
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
@@ -738,8 +738,8 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx hy hxy ha hb hab
_ ≤ a • max (f x) (f y) + b • max (f x) (f y) :=
- add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha.le)
- (smul_le_smul_of_nonneg (le_max_right _ _) hb.le)
+ (add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha.le)
+ (smul_le_smul_of_nonneg (le_max_right _ _) hb.le))
_ = max (f x) (f y) := Convex.combo_self hab _
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
@@ -785,7 +785,7 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb hab
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
- add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb)
+ (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
@@ -849,7 +849,7 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb.le hab
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
- add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb)
+ (add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -235,7 +235,10 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟨hf.1 hx.1 hy.1 ha hb hab,
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha hb hab
- _ ≤ a • r + b • r := by gcongr; exact hx.2; exact hy.2
+ _ ≤ a • r + b • r := by
+ gcongr
+ · exact hx.2
+ · exact hy.2
_ = r := Convex.combo_self hab r
⟩
#align convex_on.convex_le ConvexOn.convex_le
@@ -386,7 +389,10 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx.1 hy.1 hxy ha hb hab
- _ ≤ a • r + b • r := by gcongr; exact hx.2.le; exact hy.2.le
+ _ ≤ a • r + b • r := by
+ gcongr
+ · exact hx.2.le
+ · exact hy.2.le
_ = r := Convex.combo_self hab r
⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
open Classical
(#11199)
We remove all but one open Classical
s, instead preferring to use open scoped Classical
. The only real side-effect this led to is moving a couple declarations to use Exists.choose
instead of Classical.choose
.
The first few commits are explicitly labelled regex replaces for ease of review.
@@ -29,7 +29,8 @@ a convex set.
-/
-open LinearMap Set BigOperators Classical Convex Pointwise
+open scoped Classical
+open LinearMap Set BigOperators Convex Pointwise
variable {𝕜 E F α β ι : Type*}
refine
s (#10762)
I replaced a few "terminal" refine/refine'
s with exact
.
The strategy was very simple-minded: essentially any refine
whose following line had smaller indentation got replaced by exact
and then I cleaned up the mess.
This PR certainly leaves some further terminal refine
s, but maybe the current change is beneficial.
@@ -417,7 +417,7 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
wlog h : x < y
· rw [add_comm (a • x), add_comm (a • f x)]
rw [add_comm] at hab
- refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
+ exact this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
@@ -447,7 +447,7 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
wlog h : x < y
· rw [add_comm (a • x), add_comm (a • f x)]
rw [add_comm] at hab
- refine' this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
+ exact this hs hf y hy x hx hxy.symm b a hb ha hab (hxy.lt_or_lt.resolve_left h)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
$
with <|
(#9319)
See Zulip thread for the discussion.
@@ -1142,10 +1142,10 @@ lemma StrictConvexOn.eq_of_isMinOn (hf : StrictConvexOn 𝕜 s f) (hfx : IsMinOn
(hfy : IsMinOn f s y) (hx : x ∈ s) (hy : y ∈ s) : x = y := by
by_contra hxy
let z := (2 : 𝕜)⁻¹ • x + (2 : 𝕜)⁻¹ • y
- have hz : z ∈ s := hf.1 hx hy (by norm_num) (by norm_num) $ by norm_num
+ have hz : z ∈ s := hf.1 hx hy (by norm_num) (by norm_num) <| by norm_num
refine lt_irrefl (f z) ?_
calc
- f z < _ := hf.2 hx hy hxy (by norm_num) (by norm_num) $ by norm_num
+ f z < _ := hf.2 hx hy hxy (by norm_num) (by norm_num) <| by norm_num
_ ≤ (2 : 𝕜)⁻¹ • f z + (2 : 𝕜)⁻¹ • f z := by gcongr; exacts [hfx hz, hfy hz]
_ = f z := by rw [← _root_.add_smul]; norm_num
•
lemmas (#9179)
Remove the duplicates introduced in #8869 by sorting the lemmas in Algebra.Order.SMul
into three files:
Algebra.Order.Module.Defs
for the order isomorphism induced by scalar multiplication by a positivity elementAlgebra.Order.Module.Pointwise
for the order properties of scalar multiplication of sets. This file is new. I credit myself for https://github.com/leanprover-community/mathlib/pull/9078Algebra.Order.Module.OrderedSMul
: The material about OrderedSMul
per se. Inherits the copyright header from Algebra.Order.SMul
. This file should eventually be deleted.I move each #align
to the correct file. On top of that, I delete unused redundant OrderedSMul
instances (they were useful in Lean 3, but not anymore) and eq_of_smul_eq_smul_of_pos_of_le
/eq_of_smul_eq_smul_of_neg_of_le
since those lemmas are weird and unused.
@@ -547,8 +547,8 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha.le hb.le hab
_ < a • r + b • r :=
- (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hx.2 ha)
- (smul_le_smul_of_nonneg hy.2.le hb.le))
+ (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos_left hx.2 ha)
+ (smul_le_smul_of_nonneg_left hy.2.le hb.le))
_ = r := Convex.combo_self hab _⟩
#align convex_on.convex_lt ConvexOn.convex_lt
@@ -563,8 +563,8 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
refine' ⟨hf.1 hp.1 hq.1 ha.le hb.le hab, _⟩
calc
f (a • p.1 + b • q.1) ≤ a • f p.1 + b • f q.1 := hf.2 hp.1 hq.1 ha.le hb.le hab
- _ < a • p.2 + b • q.2 :=
- add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
+ _ < a • p.2 + b • q.2 := add_lt_add_of_lt_of_le
+ (smul_lt_smul_of_pos_left hp.2 ha) (smul_le_smul_of_nonneg_left hq.2 hb.le)
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
@@ -709,13 +709,12 @@ variable [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g :
theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f y ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f x :=
- le_of_not_lt fun h =>
- lt_irrefl (f (a • x + b • y)) <|
- calc
- f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb hab
- _ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
- (add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb))
- _ = f (a • x + b • y) := Convex.combo_self hab _
+ le_of_not_lt fun h ↦ lt_irrefl (f (a • x + b • y)) <|
+ calc
+ f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb hab
+ _ < a • f (a • x + b • y) + b • f (a • x + b • y) := add_lt_add_of_lt_of_le
+ (smul_lt_smul_of_pos_left h ha) (smul_le_smul_of_nonneg_left hfy hb)
+ _ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -770,13 +769,12 @@ the writing, we decided the resulting lemmas wouldn't be useful. Feel free to re
theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f y < f (a • x + b • y)) :
f (a • x + b • y) < f x :=
- not_le.1 fun h =>
- lt_irrefl (f (a • x + b • y)) <|
- calc
- f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb.le hab
- _ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
- (add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb))
- _ = f (a • x + b • y) := Convex.combo_self hab _
+ not_le.1 fun h ↦ lt_irrefl (f (a • x + b • y)) <|
+ calc
+ f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha.le hb.le hab
+ _ < a • f (a • x + b • y) + b • f (a • x + b • y) := add_lt_add_of_le_of_lt
+ (smul_le_smul_of_nonneg_left h ha.le) (smul_lt_smul_of_pos_left hfy hb)
+ _ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
@@ -980,7 +978,7 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
⟨hf.1, fun x hx y hy a b ha hb hab =>
calc
c • f (a • x + b • y) ≤ c • (a • f x + b • f y) :=
- smul_le_smul_of_nonneg (hf.2 hx hy ha hb hab) hc
+ smul_le_smul_of_nonneg_left (hf.2 hx hy ha hb hab) hc
_ = a • c • f x + b • c • f y := by rw [smul_add, smul_comm c, smul_comm c]⟩
#align convex_on.smul ConvexOn.smul
@@ -834,7 +834,9 @@ theorem neg_convexOn_iff : ConvexOn 𝕜 s (-f) ↔ ConcaveOn 𝕜 s f := by
constructor
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy a b ha hb hab => _⟩
- simp [neg_apply, neg_le, add_comm] at h
+ simp? [neg_apply, neg_le, add_comm] at h says
+ simp only [Pi.neg_apply, smul_neg, le_add_neg_iff_add_le, add_comm,
+ add_neg_le_iff_le_add] at h
exact h hx hy ha hb hab
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy a b ha hb hab => _⟩
@@ -855,7 +857,8 @@ theorem neg_strictConvexOn_iff : StrictConvexOn 𝕜 s (-f) ↔ StrictConcaveOn
constructor
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy hxy a b ha hb hab => _⟩
- simp [neg_apply, neg_lt, add_comm] at h
+ simp only [ne_eq, Pi.neg_apply, smul_neg, lt_add_neg_iff_add_lt, add_comm,
+ add_neg_lt_iff_lt_add] at h
exact h hx hy hxy ha hb hab
· rintro ⟨hconv, h⟩
refine' ⟨hconv, fun x hx y hy hxy a b ha hb hab => _⟩
[@foo](https://github.com/foo) _ _ _ _ _ ...
by named arguments (#8702)
Using Lean4's named arguments, we manage to remove a few hard-to-read explicit function calls [@foo](https://github.com/foo) _ _ _ _ _ ...
which used to be necessary in Lean3.
Occasionally, this results in slightly longer code. The benefit of named arguments is readability, as well as to reduce the brittleness of the code when the argument order is changed.
Co-authored-by: Michael Rothgang <rothgami@math.hu-berlin.de>
@@ -209,7 +209,7 @@ theorem convexOn_const (c : β) (hs : Convex 𝕜 s) : ConvexOn 𝕜 s fun _ : E
#align convex_on_const convexOn_const
theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun _ => c :=
- @convexOn_const _ _ βᵒᵈ _ _ _ _ _ _ c hs
+ convexOn_const (β := βᵒᵈ) _ hs
#align concave_on_const concaveOn_const
theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2 }) :
@@ -220,7 +220,7 @@ theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s
theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 }) :
ConcaveOn 𝕜 s f :=
- @convexOn_of_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ h
+ convexOn_of_convex_epigraph (β := βᵒᵈ) h
#align concave_on_of_convex_hypograph concaveOn_of_convex_hypograph
end Module
@@ -264,7 +264,7 @@ theorem convexOn_iff_convex_epigraph :
theorem concaveOn_iff_convex_hypograph :
ConcaveOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
- @convexOn_iff_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ f
+ convexOn_iff_convex_epigraph (β := βᵒᵈ)
#align concave_on_iff_convex_hypograph concaveOn_iff_convex_hypograph
end OrderedSMul
@@ -329,7 +329,7 @@ theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧ ∀ ⦃x⦄, x ∈ s → ∀ ⦃y⦄, y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 →
a • f x + b • f y ≤ f (a • x + b • y) :=
- @convexOn_iff_forall_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
+ convexOn_iff_forall_pos (β := βᵒᵈ)
#align concave_on_iff_forall_pos concaveOn_iff_forall_pos
theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
@@ -351,7 +351,7 @@ theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
Convex 𝕜 s ∧
s.Pairwise fun x y =>
∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 → a • f x + b • f y ≤ f (a • x + b • y) :=
- @convexOn_iff_pairwise_pos 𝕜 E βᵒᵈ _ _ _ _ _ _ _
+ convexOn_iff_pairwise_pos (β := βᵒᵈ)
#align concave_on_iff_pairwise_pos concaveOn_iff_pairwise_pos
/-- A linear map is convex. -/
@@ -429,7 +429,7 @@ theorem LinearOrder.concaveOn_of_lt (hs : Convex 𝕜 s)
(hf : ∀ ⦃x⦄, x ∈ s → ∀ ⦃y⦄, y ∈ s → x < y → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 →
a • f x + b • f y ≤ f (a • x + b • y)) :
ConcaveOn 𝕜 s f :=
- @LinearOrder.convexOn_of_lt _ _ βᵒᵈ _ _ _ _ _ _ s f hs hf
+ LinearOrder.convexOn_of_lt (β := βᵒᵈ) hs hf
#align linear_order.concave_on_of_lt LinearOrder.concaveOn_of_lt
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
@@ -459,7 +459,7 @@ theorem LinearOrder.strictConcaveOn_of_lt (hs : Convex 𝕜 s)
(hf : ∀ ⦃x⦄, x ∈ s → ∀ ⦃y⦄, y ∈ s → x < y → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 →
a • f x + b • f y < f (a • x + b • y)) :
StrictConcaveOn 𝕜 s f :=
- @LinearOrder.strictConvexOn_of_lt _ _ βᵒᵈ _ _ _ _ _ _ _ _ hs hf
+ LinearOrder.strictConvexOn_of_lt (β := βᵒᵈ) hs hf
#align linear_order.strict_concave_on_of_lt LinearOrder.strictConcaveOn_of_lt
end LinearOrder
@@ -1054,7 +1054,7 @@ theorem concaveOn_iff_div {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧ ∀ ⦃x⦄, x ∈ s → ∀ ⦃y⦄, y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 ≤ a → 0 ≤ b → 0 < a + b →
(a / (a + b)) • f x + (b / (a + b)) • f y ≤ f ((a / (a + b)) • x + (b / (a + b)) • y) :=
- @convexOn_iff_div _ _ βᵒᵈ _ _ _ _ _ _ _
+ convexOn_iff_div (β := βᵒᵈ)
#align concave_on_iff_div concaveOn_iff_div
theorem strictConvexOn_iff_div {f : E → β} :
@@ -1074,7 +1074,7 @@ theorem strictConcaveOn_iff_div {f : E → β} :
StrictConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧ ∀ ⦃x⦄, x ∈ s → ∀ ⦃y⦄, y ∈ s → x ≠ y → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b →
(a / (a + b)) • f x + (b / (a + b)) • f y < f ((a / (a + b)) • x + (b / (a + b)) • y) :=
- @strictConvexOn_iff_div _ _ βᵒᵈ _ _ _ _ _ _ _
+ strictConvexOn_iff_div (β := βᵒᵈ)
#align strict_concave_on_iff_div strictConcaveOn_iff_div
end SMul
@@ -1093,9 +1093,9 @@ theorem OrderIso.strictConvexOn_symm (f : α ≃o β) (hf : StrictConcaveOn 𝕜
refine ⟨convex_univ, fun x _ y _ hxy a b ha hb hab => ?_⟩
obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
- have hxy' : x' ≠ y' := by rw [←f.injective.ne_iff, ←hx'', ←hy'']; exact hxy
+ have hxy' : x' ≠ y' := by rw [← f.injective.ne_iff, ← hx'', ← hy'']; exact hxy
simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
- rw [←f.lt_iff_lt, OrderIso.apply_symm_apply]
+ rw [← f.lt_iff_lt, OrderIso.apply_symm_apply]
exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) hxy' ha hb hab
theorem OrderIso.convexOn_symm (f : α ≃o β) (hf : ConcaveOn 𝕜 univ f) :
@@ -1104,7 +1104,7 @@ theorem OrderIso.convexOn_symm (f : α ≃o β) (hf : ConcaveOn 𝕜 univ f) :
obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
- rw [←f.le_iff_le, OrderIso.apply_symm_apply]
+ rw [← f.le_iff_le, OrderIso.apply_symm_apply]
exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) ha hb hab
theorem OrderIso.strictConcaveOn_symm (f : α ≃o β) (hf : StrictConvexOn 𝕜 univ f) :
@@ -1112,9 +1112,9 @@ theorem OrderIso.strictConcaveOn_symm (f : α ≃o β) (hf : StrictConvexOn 𝕜
refine ⟨convex_univ, fun x _ y _ hxy a b ha hb hab => ?_⟩
obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
- have hxy' : x' ≠ y' := by rw [←f.injective.ne_iff, ←hx'', ←hy'']; exact hxy
+ have hxy' : x' ≠ y' := by rw [← f.injective.ne_iff, ← hx'', ← hy'']; exact hxy
simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
- rw [←f.lt_iff_lt, OrderIso.apply_symm_apply]
+ rw [← f.lt_iff_lt, OrderIso.apply_symm_apply]
exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) hxy' ha hb hab
theorem OrderIso.concaveOn_symm (f : α ≃o β) (hf : ConvexOn 𝕜 univ f) :
@@ -1123,7 +1123,7 @@ theorem OrderIso.concaveOn_symm (f : α ≃o β) (hf : ConvexOn 𝕜 univ f) :
obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
- rw [←f.le_iff_le, OrderIso.apply_symm_apply]
+ rw [← f.le_iff_le, OrderIso.apply_symm_apply]
exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) ha hb hab
end OrderIso
@@ -1146,7 +1146,7 @@ lemma StrictConvexOn.eq_of_isMinOn (hf : StrictConvexOn 𝕜 s f) (hfx : IsMinOn
calc
f z < _ := hf.2 hx hy hxy (by norm_num) (by norm_num) $ by norm_num
_ ≤ (2 : 𝕜)⁻¹ • f z + (2 : 𝕜)⁻¹ • f z := by gcongr; exacts [hfx hz, hfy hz]
- _ = f z := by rw [←_root_.add_smul]; norm_num
+ _ = f z := by rw [← _root_.add_smul]; norm_num
/-- A strictly concave function admits at most one global maximum. -/
lemma StrictConcaveOn.eq_of_isMaxOn (hf : StrictConcaveOn 𝕜 s f) (hfx : IsMaxOn f s x)
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, François Dupuis
-/
import Mathlib.Analysis.Convex.Basic
+import Mathlib.Order.Filter.Extr
import Mathlib.Tactic.GCongr
#align_import analysis.convex.function from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
@@ -1127,9 +1128,35 @@ theorem OrderIso.concaveOn_symm (f : α ≃o β) (hf : ConvexOn 𝕜 univ f) :
end OrderIso
-section
-variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module 𝕜 β] [OrderedSMul 𝕜 β]
+section LinearOrderedField
+variable [LinearOrderedField 𝕜]
+
+section OrderedAddCommMonoid
+variable [OrderedAddCommMonoid β] [AddCommMonoid E] [SMul 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β]
+ {f : E → β} {s : Set E} {x y : E}
+
+/-- A strictly convex function admits at most one global minimum. -/
+lemma StrictConvexOn.eq_of_isMinOn (hf : StrictConvexOn 𝕜 s f) (hfx : IsMinOn f s x)
+ (hfy : IsMinOn f s y) (hx : x ∈ s) (hy : y ∈ s) : x = y := by
+ by_contra hxy
+ let z := (2 : 𝕜)⁻¹ • x + (2 : 𝕜)⁻¹ • y
+ have hz : z ∈ s := hf.1 hx hy (by norm_num) (by norm_num) $ by norm_num
+ refine lt_irrefl (f z) ?_
+ calc
+ f z < _ := hf.2 hx hy hxy (by norm_num) (by norm_num) $ by norm_num
+ _ ≤ (2 : 𝕜)⁻¹ • f z + (2 : 𝕜)⁻¹ • f z := by gcongr; exacts [hfx hz, hfy hz]
+ _ = f z := by rw [←_root_.add_smul]; norm_num
+
+/-- A strictly concave function admits at most one global maximum. -/
+lemma StrictConcaveOn.eq_of_isMaxOn (hf : StrictConcaveOn 𝕜 s f) (hfx : IsMaxOn f s x)
+ (hfy : IsMaxOn f s y) (hx : x ∈ s) (hy : y ∈ s) : x = y :=
+ hf.dual.eq_of_isMinOn hfx hfy hx hy
+
+end OrderedAddCommMonoid
+
+section LinearOrderedCancelAddCommMonoid
+variable [LinearOrderedCancelAddCommMonoid β] [Module 𝕜 β] [OrderedSMul 𝕜 β]
{x y z : 𝕜} {s : Set 𝕜} {f : 𝕜 → β}
theorem ConvexOn.le_right_of_left_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s) (hxy : x < y)
@@ -1154,4 +1181,5 @@ theorem ConcaveOn.left_le_of_le_right'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s)
hf.dual.le_left_of_right_le'' hx hz hxy hyz h
#align concave_on.left_le_of_le_right'' ConcaveOn.left_le_of_le_right''
-end
+end LinearOrderedCancelAddCommMonoid
+end LinearOrderedField
@@ -869,16 +869,16 @@ theorem neg_strictConcaveOn_iff : StrictConcaveOn 𝕜 s (-f) ↔ StrictConvexOn
rw [← neg_strictConvexOn_iff, neg_neg f]
#align neg_strict_concave_on_iff neg_strictConcaveOn_iff
-alias neg_convexOn_iff ↔ _ ConcaveOn.neg
+alias ⟨_, ConcaveOn.neg⟩ := neg_convexOn_iff
#align concave_on.neg ConcaveOn.neg
-alias neg_concaveOn_iff ↔ _ ConvexOn.neg
+alias ⟨_, ConvexOn.neg⟩ := neg_concaveOn_iff
#align convex_on.neg ConvexOn.neg
-alias neg_strictConvexOn_iff ↔ _ StrictConcaveOn.neg
+alias ⟨_, StrictConcaveOn.neg⟩ := neg_strictConvexOn_iff
#align strict_concave_on.neg StrictConcaveOn.neg
-alias neg_strictConcaveOn_iff ↔ _ StrictConvexOn.neg
+alias ⟨_, StrictConvexOn.neg⟩ := neg_strictConcaveOn_iff
#align strict_convex_on.neg StrictConvexOn.neg
theorem ConvexOn.sub (hf : ConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConvexOn 𝕜 s (f - g) :=
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -30,7 +30,7 @@ a convex set.
open LinearMap Set BigOperators Classical Convex Pointwise
-variable {𝕜 E F α β ι : Type _}
+variable {𝕜 E F α β ι : Type*}
section OrderedSemiring
@@ -2,15 +2,12 @@
Copyright (c) 2019 Alexander Bentkamp. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Alexander Bentkamp, François Dupuis
-
-! This file was ported from Lean 3 source module analysis.convex.function
-! leanprover-community/mathlib commit 92ca63f0fb391a9ca5f22d2409a6080e786d99f7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Basic
import Mathlib.Tactic.GCongr
+#align_import analysis.convex.function from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
+
/-!
# Convex and concave functions
at
and goals (#5387)
Changes are of the form
some_tactic at h⊢
-> some_tactic at h ⊢
some_tactic at h
-> some_tactic at h
@@ -729,7 +729,7 @@ theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x ≤ f (a • x + b • y)) :
f (a • x + b • y) ≤ f y := by
- rw [add_comm] at hab hfx⊢
+ rw [add_comm] at hab hfx ⊢
exact hf.le_left_of_right_le' hy hx hb ha hab hfx
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
@@ -790,7 +790,7 @@ theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx :
theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f x < f (a • x + b • y)) :
f (a • x + b • y) < f y := by
- rw [add_comm] at hab hfx⊢
+ rw [add_comm] at hab hfx ⊢
exact hf.lt_left_of_right_lt' hy hx hb ha hab hfx
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
x ↦ x^p
for p ∈ (0,1)
(#4916)
This PR prove the (strict) concavity of x ↦ x^p
for p
between 0 and 1.
The main results are in a new file to avoid adding dependencies to Analysis.Convex.SpecificFunctions.Basic
which is carefully designed to be low in the import hierarchy.
Co-authored-by: Frédéric Dupuis <31101893+dupuisf@users.noreply.github.com>
@@ -31,7 +31,7 @@ a convex set.
-/
-open Finset LinearMap Set BigOperators Classical Convex Pointwise
+open LinearMap Set BigOperators Classical Convex Pointwise
variable {𝕜 E F α β ι : Type _}
@@ -1085,6 +1085,51 @@ end OrderedAddCommMonoid
end LinearOrderedField
+section OrderIso
+
+variable [OrderedSemiring 𝕜] [OrderedAddCommMonoid α] [SMul 𝕜 α]
+ [OrderedAddCommMonoid β] [SMul 𝕜 β]
+
+theorem OrderIso.strictConvexOn_symm (f : α ≃o β) (hf : StrictConcaveOn 𝕜 univ f) :
+ StrictConvexOn 𝕜 univ f.symm := by
+ refine ⟨convex_univ, fun x _ y _ hxy a b ha hb hab => ?_⟩
+ obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
+ obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
+ have hxy' : x' ≠ y' := by rw [←f.injective.ne_iff, ←hx'', ←hy'']; exact hxy
+ simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
+ rw [←f.lt_iff_lt, OrderIso.apply_symm_apply]
+ exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) hxy' ha hb hab
+
+theorem OrderIso.convexOn_symm (f : α ≃o β) (hf : ConcaveOn 𝕜 univ f) :
+ ConvexOn 𝕜 univ f.symm := by
+ refine ⟨convex_univ, fun x _ y _ a b ha hb hab => ?_⟩
+ obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
+ obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
+ simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
+ rw [←f.le_iff_le, OrderIso.apply_symm_apply]
+ exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) ha hb hab
+
+theorem OrderIso.strictConcaveOn_symm (f : α ≃o β) (hf : StrictConvexOn 𝕜 univ f) :
+ StrictConcaveOn 𝕜 univ f.symm := by
+ refine ⟨convex_univ, fun x _ y _ hxy a b ha hb hab => ?_⟩
+ obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
+ obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
+ have hxy' : x' ≠ y' := by rw [←f.injective.ne_iff, ←hx'', ←hy'']; exact hxy
+ simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
+ rw [←f.lt_iff_lt, OrderIso.apply_symm_apply]
+ exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) hxy' ha hb hab
+
+theorem OrderIso.concaveOn_symm (f : α ≃o β) (hf : ConvexOn 𝕜 univ f) :
+ ConcaveOn 𝕜 univ f.symm := by
+ refine ⟨convex_univ, fun x _ y _ a b ha hb hab => ?_⟩
+ obtain ⟨x', hx''⟩ := f.surjective.exists.mp ⟨x, rfl⟩
+ obtain ⟨y', hy''⟩ := f.surjective.exists.mp ⟨y, rfl⟩
+ simp only [hx'', hy'', OrderIso.symm_apply_apply, gt_iff_lt]
+ rw [←f.le_iff_le, OrderIso.apply_symm_apply]
+ exact hf.2 (by simp : x' ∈ univ) (by simp : y' ∈ univ) ha hb hab
+
+end OrderIso
+
section
variable [LinearOrderedField 𝕜] [LinearOrderedCancelAddCommMonoid β] [Module 𝕜 β] [OrderedSMul 𝕜 β]
@@ -9,6 +9,7 @@ Authors: Alexander Bentkamp, François Dupuis
! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Basic
+import Mathlib.Tactic.GCongr
/-!
# Convex and concave functions
@@ -235,8 +236,7 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟨hf.1 hx.1 hy.1 ha hb hab,
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx.1 hy.1 ha hb hab
- _ ≤ a • r + b • r :=
- (add_le_add (smul_le_smul_of_nonneg hx.2 ha) (smul_le_smul_of_nonneg hy.2 hb))
+ _ ≤ a • r + b • r := by gcongr; exact hx.2; exact hy.2
_ = r := Convex.combo_self hab r
⟩
#align convex_on.convex_le ConvexOn.convex_le
@@ -251,7 +251,7 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
refine' ⟨hf.1 hx hy ha hb hab, _⟩
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
- _ ≤ a • r + b • t := add_le_add (smul_le_smul_of_nonneg hr ha) (smul_le_smul_of_nonneg ht hb)
+ _ ≤ a • r + b • t := by gcongr
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
@@ -387,8 +387,7 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
⟨hf.1 hx.1 hy.1 ha.le hb.le hab,
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx.1 hy.1 hxy ha hb hab
- _ ≤ a • r + b • r :=
- (add_le_add (smul_lt_smul_of_pos hx.2 ha).le (smul_lt_smul_of_pos hy.2 hb).le)
+ _ ≤ a • r + b • r := by gcongr; exact hx.2.le; exact hy.2.le
_ = r := Convex.combo_self hab r
⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
@@ -601,12 +600,10 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
refine' ⟨hf.left, fun x hx y hy a b ha hb hab => sup_le _ _⟩
· calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.right hx hy ha hb hab
- _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_left ha) (smul_le_smul_of_nonneg le_sup_left hb)
+ _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) := by gcongr <;> apply le_sup_left
· calc
g (a • x + b • y) ≤ a • g x + b • g y := hg.right hx hy ha hb hab
- _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_right ha) (smul_le_smul_of_nonneg le_sup_right hb)
+ _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) := by gcongr <;> apply le_sup_right
#align convex_on.sup ConvexOn.sup
/-- The pointwise minimum of concave functions is concave. -/
@@ -621,14 +618,10 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
max_lt
(calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx hy hxy ha hb hab
- _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_left ha.le)
- (smul_le_smul_of_nonneg le_sup_left hb.le))
+ _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) := by gcongr <;> apply le_sup_left)
(calc
g (a • x + b • y) < a • g x + b • g y := hg.2 hx hy hxy ha hb hab
- _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
- add_le_add (smul_le_smul_of_nonneg le_sup_right ha.le)
- (smul_le_smul_of_nonneg le_sup_right hb.le))⟩
+ _ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) := by gcongr <;> apply le_sup_right)⟩
#align strict_convex_on.sup StrictConvexOn.sup
/-- The pointwise minimum of strictly concave functions is strictly concave. -/
@@ -642,9 +635,10 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
(ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : f (a • x + b • y) ≤ max (f x) (f y) :=
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
- _ ≤ a • max (f x) (f y) + b • max (f x) (f y) :=
- (add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha)
- (smul_le_smul_of_nonneg (le_max_right _ _) hb))
+ _ ≤ a • max (f x) (f y) + b • max (f x) (f y) := by
+ gcongr
+ · apply le_max_left
+ · apply le_max_right
_ = max (f x) (f y) := Convex.combo_self hab _
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
@@ -674,9 +668,10 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
f (a • x + b • y) < max (f x) (f y) :=
calc
f (a • x + b • y) < a • f x + b • f y := hf.2 hx hy hxy ha hb hab
- _ ≤ a • max (f x) (f y) + b • max (f x) (f y) :=
- (add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha.le)
- (smul_le_smul_of_nonneg (le_max_right _ _) hb.le))
+ _ ≤ a • max (f x) (f y) + b • max (f x) (f y) := by
+ gcongr
+ · apply le_max_left
+ · apply le_max_right
_ = max (f x) (f y) := Convex.combo_self hab _
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
This makes a mathlib4 version of mathlib3's tactic.basic
, now called Mathlib.Tactic.Common
, which imports all tactics which do not have significant theory requirements, and then is imported all across the base of the hierarchy.
This ensures that all common tactics are available nearly everywhere in the library, rather than having to be imported one-by-one as you need them.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -9,7 +9,6 @@ Authors: Alexander Bentkamp, François Dupuis
! if you have ported upstream changes.
-/
import Mathlib.Analysis.Convex.Basic
-import Mathlib.Tactic.WLOG
/-!
# Convex and concave functions
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -210,7 +210,6 @@ theorem convexOn_const (c : β) (hs : Convex 𝕜 s) : ConvexOn 𝕜 s fun _ : E
⟨hs, fun _ _ _ _ _ _ _ _ hab => (Convex.combo_self hab c).ge⟩
#align convex_on_const convexOn_const
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem concaveOn_const (c : β) (hs : Convex 𝕜 s) : ConcaveOn 𝕜 s fun _ => c :=
@convexOn_const _ _ βᵒᵈ _ _ _ _ _ _ c hs
#align concave_on_const concaveOn_const
@@ -221,7 +220,6 @@ theorem convexOn_of_convex_epigraph (h : Convex 𝕜 { p : E × β | p.1 ∈ s
fun x hx y hy a b ha hb hab => (@h (x, f x) ⟨hx, le_rfl⟩ (y, f y) ⟨hy, le_rfl⟩ a b ha hb hab).2⟩
#align convex_on_of_convex_epigraph convexOn_of_convex_epigraph
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem concaveOn_of_convex_hypograph (h : Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 }) :
ConcaveOn 𝕜 s f :=
@convexOn_of_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ h
@@ -244,7 +242,6 @@ theorem ConvexOn.convex_le (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
⟩
#align convex_on.convex_le ConvexOn.convex_le
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.convex_ge (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r ≤ f x }) :=
hf.dual.convex_le r
#align concave_on.convex_ge ConcaveOn.convex_ge
@@ -258,7 +255,6 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
_ ≤ a • r + b • t := add_le_add (smul_le_smul_of_nonneg hr ha) (smul_le_smul_of_nonneg ht hb)
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.convex_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
hf.dual.convex_epigraph
@@ -269,7 +265,6 @@ theorem convexOn_iff_convex_epigraph :
⟨ConvexOn.convex_epigraph, convexOn_of_convex_epigraph⟩
#align convex_on_iff_convex_epigraph convexOn_iff_convex_epigraph
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem concaveOn_iff_convex_hypograph :
ConcaveOn 𝕜 s f ↔ Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 ≤ f p.1 } :=
@convexOn_iff_convex_epigraph 𝕜 E βᵒᵈ _ _ _ _ _ _ _ f
@@ -333,7 +328,6 @@ theorem convexOn_iff_forall_pos {s : Set E} {f : E → β} :
exact h hx hy ha' hb' hab
#align convex_on_iff_forall_pos convexOn_iff_forall_pos
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem concaveOn_iff_forall_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧ ∀ ⦃x⦄, x ∈ s → ∀ ⦃y⦄, y ∈ s → ∀ ⦃a b : 𝕜⦄, 0 < a → 0 < b → a + b = 1 →
@@ -355,7 +349,6 @@ theorem convexOn_iff_pairwise_pos {s : Set E} {f : E → β} :
exact h hx hy hxy ha hb hab
#align convex_on_iff_pairwise_pos convexOn_iff_pairwise_pos
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem concaveOn_iff_pairwise_pos {s : Set E} {f : E → β} :
ConcaveOn 𝕜 s f ↔
Convex 𝕜 s ∧
@@ -380,7 +373,6 @@ theorem StrictConvexOn.convexOn {s : Set E} {f : E → β} (hf : StrictConvexOn
⟨hf.1, fun _ hx _ hy hxy _ _ ha hb hab => (hf.2 hx hy hxy ha hb hab).le⟩
#align strict_convex_on.convex_on StrictConvexOn.convexOn
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem StrictConcaveOn.concaveOn {s : Set E} {f : E → β} (hf : StrictConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s f :=
hf.dual.convexOn
@@ -402,7 +394,6 @@ theorem StrictConvexOn.convex_lt (hf : StrictConvexOn 𝕜 s f) (r : β) :
⟩
#align strict_convex_on.convex_lt StrictConvexOn.convex_lt
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem StrictConcaveOn.convex_gt (hf : StrictConcaveOn 𝕜 s f) (r : β) :
Convex 𝕜 ({ x ∈ s | r < f x }) :=
hf.dual.convex_lt r
@@ -434,7 +425,6 @@ theorem LinearOrder.convexOn_of_lt (hs : Convex 𝕜 s)
exact hf hx hy h ha hb hab
#align linear_order.convex_on_of_lt LinearOrder.convexOn_of_lt
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is concave it suffices to
verify the inequality `a • f x + b • f y ≤ f (a • x + b • y)` for `x < y` and positive `a`, `b`. The
@@ -465,7 +455,6 @@ theorem LinearOrder.strictConvexOn_of_lt (hs : Convex 𝕜 s)
exact hf hx hy h ha hb hab
#align linear_order.strict_convex_on_of_lt LinearOrder.strictConvexOn_of_lt
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- For a function on a convex set in a linearly ordered space (where the order and the algebraic
structures aren't necessarily compatible), in order to prove that it is strictly concave it suffices
to verify the inequality `a • f x + b • f y < f (a • x + b • y)` for `x < y` and positive `a`, `b`.
@@ -567,7 +556,6 @@ theorem ConvexOn.convex_lt (hf : ConvexOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x
_ = r := Convex.combo_self hab _⟩
#align convex_on.convex_lt ConvexOn.convex_lt
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.convex_gt (hf : ConcaveOn 𝕜 s f) (r : β) : Convex 𝕜 ({ x ∈ s | r < f x }) :=
hf.dual.convex_lt r
#align concave_on.convex_gt ConcaveOn.convex_gt
@@ -583,7 +571,6 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.openSegment_subset_strict_hypograph (hf : ConcaveOn 𝕜 s f) (p q : E × β)
(hp : p.1 ∈ s ∧ p.2 < f p.1) (hq : q.1 ∈ s ∧ q.2 ≤ f q.1) :
openSegment 𝕜 p q ⊆ { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
@@ -596,7 +583,6 @@ theorem ConvexOn.convex_strict_epigraph (hf : ConvexOn 𝕜 s f) :
hf.openSegment_subset_strict_epigraph p q hp ⟨hq.1, hq.2.le⟩
#align convex_on.convex_strict_epigraph ConvexOn.convex_strict_epigraph
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.convex_strict_hypograph (hf : ConcaveOn 𝕜 s f) :
Convex 𝕜 { p : E × β | p.1 ∈ s ∧ p.2 < f p.1 } :=
hf.dual.convex_strict_epigraph
@@ -624,7 +610,6 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
add_le_add (smul_le_smul_of_nonneg le_sup_right ha) (smul_le_smul_of_nonneg le_sup_right hb)
#align convex_on.sup ConvexOn.sup
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- The pointwise minimum of concave functions is concave. -/
theorem ConcaveOn.inf (hf : ConcaveOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) : ConcaveOn 𝕜 s (f ⊓ g) :=
hf.dual.sup hg
@@ -647,7 +632,6 @@ theorem StrictConvexOn.sup (hf : StrictConvexOn 𝕜 s f) (hg : StrictConvexOn
(smul_le_smul_of_nonneg le_sup_right hb.le))⟩
#align strict_convex_on.sup StrictConvexOn.sup
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- The pointwise minimum of strictly concave functions is strictly concave. -/
theorem StrictConcaveOn.inf (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f ⊓ g) :=
@@ -665,7 +649,6 @@ theorem ConvexOn.le_on_segment' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s
_ = max (f x) (f y) := Convex.combo_self hab _
#align convex_on.le_on_segment' ConvexOn.le_on_segment'
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 ≤ a) (hb : 0 ≤ b) (hab : a + b = 1) : min (f x) (f y) ≤ f (a • x + b • y) :=
@@ -679,7 +662,6 @@ theorem ConvexOn.le_on_segment (hf : ConvexOn 𝕜 s f) {x y z : E} (hx : x ∈
hz ▸ hf.le_on_segment' hx hy ha hb hab
#align convex_on.le_on_segment ConvexOn.le_on_segment
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- A concave function on a segment is lower-bounded by the min of its endpoints. -/
theorem ConcaveOn.ge_on_segment (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ [x -[𝕜] y]) : min (f x) (f y) ≤ f z :=
@@ -699,7 +681,6 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
_ = max (f x) (f y) := Convex.combo_self hab _
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_open_segment' (hf : StrictConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s)
@@ -716,7 +697,6 @@ theorem StrictConvexOn.lt_on_openSegment (hf : StrictConvexOn 𝕜 s f) {x y z :
hz ▸ hf.lt_on_open_segment' hx hy hxy ha hb hab
#align strict_convex_on.lt_on_open_segment StrictConvexOn.lt_on_openSegment
-set_option synthInstance.etaExperiment true in -- lean4#2074
/-- A strictly concave function on an open segment is strictly lower-bounded by the min of its
endpoints. -/
theorem StrictConcaveOn.lt_on_openSegment (hf : StrictConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s)
@@ -746,7 +726,6 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.left_le_of_le_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 ≤ b) (hab : a + b = 1) (hfy : f (a • x + b • y) ≤ f y) :
f x ≤ f (a • x + b • y) :=
@@ -760,7 +739,6 @@ theorem ConvexOn.le_right_of_left_le' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
exact hf.le_left_of_right_le' hy hx hb ha hab hfx
#align convex_on.le_right_of_left_le' ConvexOn.le_right_of_left_le'
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.right_le_of_le_left' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 ≤ a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) ≤ f x) :
f y ≤ f (a • x + b • y) :=
@@ -773,7 +751,6 @@ theorem ConvexOn.le_left_of_right_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.le_left_of_right_le' hx hy ha hb.le hab hyz
#align convex_on.le_left_of_right_le ConvexOn.le_left_of_right_le
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.left_le_of_le_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z ≤ f y) : f x ≤ f z :=
hf.dual.le_left_of_right_le hx hy hz hyz
@@ -785,7 +762,6 @@ theorem ConvexOn.le_right_of_left_le (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.le_right_of_left_le' hx hy ha.le hb hab hxz
#align convex_on.le_right_of_left_le ConvexOn.le_right_of_left_le
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.right_le_of_le_left (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z ≤ f x) : f y ≤ f z :=
hf.dual.le_right_of_left_le hx hy hz hxz
@@ -811,7 +787,6 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
_ = f (a • x + b • y) := Convex.combo_self hab _
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.left_lt_of_lt_right' (hf : ConcaveOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f (a • x + b • y) < f y) :
f x < f (a • x + b • y) :=
@@ -825,7 +800,6 @@ theorem ConvexOn.lt_right_of_left_lt' (hf : ConvexOn 𝕜 s f) {x y : E} {a b :
exact hf.lt_left_of_right_lt' hy hx hb ha hab hfx
#align convex_on.lt_right_of_left_lt' ConvexOn.lt_right_of_left_lt'
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.lt_right_of_left_lt' (hf : ConcaveOn 𝕜 s f) {x y : E} {a b : 𝕜} (hx : x ∈ s)
(hy : y ∈ s) (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfx : f (a • x + b • y) < f x) :
f y < f (a • x + b • y) :=
@@ -838,7 +812,6 @@ theorem ConvexOn.lt_left_of_right_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.lt_left_of_right_lt' hx hy ha hb hab hyz
#align convex_on.lt_left_of_right_lt ConvexOn.lt_left_of_right_lt
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.left_lt_of_lt_right (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hyz : f z < f y) : f x < f z :=
hf.dual.lt_left_of_right_lt hx hy hz hyz
@@ -850,7 +823,6 @@ theorem ConvexOn.lt_right_of_left_lt (hf : ConvexOn 𝕜 s f) {x y z : E} (hx :
exact hf.lt_right_of_left_lt' hx hy ha hb hab hxz
#align convex_on.lt_right_of_left_lt ConvexOn.lt_right_of_left_lt
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.lt_right_of_left_lt (hf : ConcaveOn 𝕜 s f) {x y z : E} (hx : x ∈ s) (hy : y ∈ s)
(hz : z ∈ openSegment 𝕜 x y) (hxz : f z < f x) : f y < f z :=
hf.dual.lt_right_of_left_lt hx hy hz hxz
@@ -926,37 +898,31 @@ theorem ConcaveOn.sub (hf : ConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : Conca
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align concave_on.sub ConcaveOn.sub
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem StrictConvexOn.sub (hf : StrictConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_convex_on.sub StrictConvexOn.sub
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem StrictConcaveOn.sub (hf : StrictConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add hg.neg
#align strict_concave_on.sub StrictConcaveOn.sub
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConvexOn.sub_strictConcaveOn (hf : ConvexOn 𝕜 s f) (hg : StrictConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConvexOn hg.neg
#align convex_on.sub_strict_concave_on ConvexOn.sub_strictConcaveOn
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.sub_strictConvexOn (hf : ConcaveOn 𝕜 s f) (hg : StrictConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_strictConcaveOn hg.neg
#align concave_on.sub_strict_convex_on ConcaveOn.sub_strictConvexOn
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem StrictConvexOn.sub_concaveOn (hf : StrictConvexOn 𝕜 s f) (hg : ConcaveOn 𝕜 s g) :
StrictConvexOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_convexOn hg.neg
#align strict_convex_on.sub_concave_on StrictConvexOn.sub_concaveOn
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem StrictConcaveOn.sub_convexOn (hf : StrictConcaveOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) :
StrictConcaveOn 𝕜 s (f - g) :=
(sub_eq_add_neg f g).symm ▸ hf.add_concaveOn hg.neg
@@ -1023,7 +989,6 @@ theorem ConvexOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConvexOn 𝕜 s f) : Conve
_ = a • c • f x + b • c • f y := by rw [smul_add, smul_comm c, smul_comm c]⟩
#align convex_on.smul ConvexOn.smul
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.smul {c : 𝕜} (hc : 0 ≤ c) (hf : ConcaveOn 𝕜 s f) :
ConcaveOn 𝕜 s fun x => c • f x :=
hf.dual.smul hc
@@ -1143,13 +1108,11 @@ theorem ConvexOn.le_left_of_right_le'' (hf : ConvexOn 𝕜 s f) (hx : x ∈ s) (
hf.le_left_of_right_le hx hz (Ioo_subset_openSegment ⟨hxy, hyz⟩) h
#align convex_on.le_left_of_right_le'' ConvexOn.le_left_of_right_le''
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.right_le_of_le_left'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x < y) (hyz : y ≤ z) (h : f y ≤ f x) : f z ≤ f y :=
hf.dual.le_right_of_left_le'' hx hz hxy hyz h
#align concave_on.right_le_of_le_left'' ConcaveOn.right_le_of_le_left''
-set_option synthInstance.etaExperiment true in -- lean4#2074
theorem ConcaveOn.left_le_of_le_right'' (hf : ConcaveOn 𝕜 s f) (hx : x ∈ s) (hz : z ∈ s)
(hxy : x ≤ y) (hyz : y < z) (h : f y ≤ f z) : f x ≤ f y :=
hf.dual.le_left_of_right_le'' hx hz hxy hyz h
This PR fixes two things:
align
statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align
). This is often seen in the mathport output after ending calc
blocks.#align
statements. (This was needed for a script I wrote for #3630.)@@ -256,7 +256,6 @@ theorem ConvexOn.convex_epigraph (hf : ConvexOn 𝕜 s f) :
calc
f (a • x + b • y) ≤ a • f x + b • f y := hf.2 hx hy ha hb hab
_ ≤ a • r + b • t := add_le_add (smul_le_smul_of_nonneg hr ha) (smul_le_smul_of_nonneg ht hb)
-
#align convex_on.convex_epigraph ConvexOn.convex_epigraph
set_option synthInstance.etaExperiment true in -- lean4#2074
@@ -582,7 +581,6 @@ theorem ConvexOn.openSegment_subset_strict_epigraph (hf : ConvexOn 𝕜 s f) (p
f (a • p.1 + b • q.1) ≤ a • f p.1 + b • f q.1 := hf.2 hp.1 hq.1 ha.le hb.le hab
_ < a • p.2 + b • q.2 :=
add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
-
#align convex_on.open_segment_subset_strict_epigraph ConvexOn.openSegment_subset_strict_epigraph
set_option synthInstance.etaExperiment true in -- lean4#2074
@@ -624,7 +622,6 @@ theorem ConvexOn.sup (hf : ConvexOn 𝕜 s f) (hg : ConvexOn 𝕜 s g) : ConvexO
g (a • x + b • y) ≤ a • g x + b • g y := hg.right hx hy ha hb hab
_ ≤ a • (f x ⊔ g x) + b • (f y ⊔ g y) :=
add_le_add (smul_le_smul_of_nonneg le_sup_right ha) (smul_le_smul_of_nonneg le_sup_right hb)
-
#align convex_on.sup ConvexOn.sup
set_option synthInstance.etaExperiment true in -- lean4#2074
@@ -700,7 +697,6 @@ theorem StrictConvexOn.lt_on_open_segment' (hf : StrictConvexOn 𝕜 s f) {x y :
(add_le_add (smul_le_smul_of_nonneg (le_max_left _ _) ha.le)
(smul_le_smul_of_nonneg (le_max_right _ _) hb.le))
_ = max (f x) (f y) := Convex.combo_self hab _
-
#align strict_convex_on.lt_on_open_segment' StrictConvexOn.lt_on_open_segment'
set_option synthInstance.etaExperiment true in -- lean4#2074
@@ -748,7 +744,6 @@ theorem ConvexOn.le_left_of_right_le' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
(add_lt_add_of_lt_of_le (smul_lt_smul_of_pos h ha) (smul_le_smul_of_nonneg hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
-
#align convex_on.le_left_of_right_le' ConvexOn.le_left_of_right_le'
set_option synthInstance.etaExperiment true in -- lean4#2074
@@ -814,7 +809,6 @@ theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x
_ < a • f (a • x + b • y) + b • f (a • x + b • y) :=
(add_lt_add_of_le_of_lt (smul_le_smul_of_nonneg h ha.le) (smul_lt_smul_of_pos hfy hb))
_ = f (a • x + b • y) := Convex.combo_self hab _
-
#align convex_on.lt_left_of_right_lt' ConvexOn.lt_left_of_right_lt'
set_option synthInstance.etaExperiment true in -- lean4#2074
@@ -19,7 +19,7 @@ inequality. The integral version can be found in `Analysis.Convex.Integral`.
A function `f : E → β` is `ConvexOn` a set `s` if `s` is itself a convex set, and for any two
points `x y ∈ s`, the segment joining `(x, f x)` to `(y, f y)` is above the graph of `f`.
-Equivalently, `Convex_on 𝕜 f s` means that the epigraph `{p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2}` is
+Equivalently, `ConvexOn 𝕜 f s` means that the epigraph `{p : E × β | p.1 ∈ s ∧ f p.1 ≤ p.2}` is
a convex set.
## Main declarations
@@ -31,9 +31,7 @@ a convex set.
-/
-open Finset LinearMap Set
-
-open BigOperators Classical Convex Pointwise
+open Finset LinearMap Set BigOperators Classical Convex Pointwise
variable {𝕜 E F α β ι : Type _}
@@ -804,7 +802,7 @@ section Module
variable [Module 𝕜 E] [Module 𝕜 β] [OrderedSMul 𝕜 β] {s : Set E} {f g : E → β}
-/- The following lemmas don't require `module 𝕜 E` if you add the hypothesis `x ≠ y`. At the time of
+/- The following lemmas don't require `Module 𝕜 E` if you add the hypothesis `x ≠ y`. At the time of
the writing, we decided the resulting lemmas wouldn't be useful. Feel free to reintroduce them. -/
theorem ConvexOn.lt_left_of_right_lt' (hf : ConvexOn 𝕜 s f) {x y : E} (hx : x ∈ s) (hy : y ∈ s)
{a b : 𝕜} (ha : 0 < a) (hb : 0 < b) (hab : a + b = 1) (hfy : f y < f (a • x + b • y)) :
The unported dependencies are